1. 程式人生 > >微信小程式雲開發簡單入門教程

微信小程式雲開發簡單入門教程

文章目錄


###開場白:
雲開發顧名思義 就是後端開發,應該是微信上週才推出的開放能力,現在這讓我想起了以前的leancloud,和更早的bmob了,而leancloud一早就開始支援微信小程式開發了,相比較而言,leancloud的資料應該更多些,但畢竟微信自家的產品,還是有必要試試的。
這邊總結一下使用體驗,首先微信的API有微信味,下面是初始化方法。
wx.cloud.init({
		//環境ID
        env: 'much-de492f',
        //獲取呼叫api者的資訊
        traceUser: true,
      })

所以還是很方便的。其次是新增資料的時候是完全圖形化的的,這點很好。
資料庫

###看的很清楚了

  1. 集合 = 表
  2. 記錄 = 資料元素
    當然 資料庫只能建一個,第一次進來的時候是空的,新建的時候起好名字就行了。

###記得把IED升級到最新版本 才會有這個雲開發.
雲開發

###其次將呼叫基礎庫也換成最新的
呼叫基礎庫也換成最新的

###如果你表也建好了 那麼剩下就是呼叫了

requestData: function() {
    wx.showLoading({
      title: '載入中',
    })
    var that = this;
    //resourceItem為表名
    wx.cloud.database().collection('resourceItem').get({
      success: function(res) {
        that.setData({
	      //res是json
	      //res.data 是資料
	      //res.errMsg 提示
          titleDatas: res.data
        })
        console.log(JSON.stringify(res))
        wx.hideLoading()
      }
    })
  },

###如果出現[]空陣列情況:
一般是上面資料庫部分 的 許可權設定未修改
空資料

###後端雲分頁
不過後端雲都存在一個比較讓人惱火的問題,就是所有的邏輯都需要在前端處理,尤其是分頁,不管是lendCloud還是微信開發都沒有支援,那麼在建庫的時候就需要自己編寫ID,在獲取時用
where做過濾,雖然是一種解決方案,但是··我發現ID居然是一個隨機數! 不過不要緊,在索引管理裡面我們看到它時有升序的,虛驚一場,這樣我們只需要將最後一條ID進行比較即可實現分頁了。

###這裡給出解決方案
載入fun

 requesListData: function(type) {
    var that = this
    //獲取相應型別的列表
    wx.showLoading({
      title: '載入中',
    })
    console.log("type = " + type)
    var db = wx.cloud.database()
    const _ = db.command
    db.collection(type).limit(2).where({
      _id: _.gt(this.data.lastId)
    }).get({
      success: function(res) {
        wx.hideLoading()
        if (res.data.length == 0) {
          if (that.data.pageNum == 1) {
            that.data.listData = []
          }
          that.data.hasMore = false
        } else {
          that.data.hasMore = true
          for (var i = 0; i < res.data.length; i++) {
            var data = res.data[i]
            that.data.listData.push(data)
            if (i + 1 == res.data.length) {
              that.data.lastId = data._id
            }
          }
        }
        that.setData({
          listData: that.data.listData,
          selectedtype: type,
          pageNum: that.data.pageNum + 1,
          lastId: that.data.lastId,
          hasMore: that.data.hasMore
        })
      },
      fail: function(res) {
        //找不到該資料庫
        console.log("===fail===" + res)
        wx.hideLoading()
      },
    })
  },
  /**
   * 頁面上拉觸底事件的處理函式
   */
  onReachBottom: function() {
    if (!this.data.hasMore) return;
    var type = this.data.selectedtype
    this.requesListData(type)
  },

  /**
   * 頁面的初始資料
   */
  data: {
    hasMore: true,
    lastId: '0',
    selectedtype: 'book',
    selectedTagId: '',
    pageNum: 1,
  },

核心程式碼 :gt()函式為找到比該ID大的元素(預設返回20條,這裡limit限制為兩條)

 db.collection(type).limit(2).where({
      _id: _.gt(this.data.lastId)
    })

好了,微信雲開發簡單的入門教程就這麼多了。

###參考資料:

關注公眾號領取更多幹貨
小碼家公眾號