微信小程序云开发简单入门教程

开场白:

云开发顾名思义 就是后端开发,应该是微信上周才推出的开放能力,现在这让我想起了以前的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)
    })

好了,微信云开发简单的入门教程就这么多了。

参考资料:

  1. Slog71_微信小程序之云开发-全栈时代3
  2. 小程序·云开发

猜你喜欢

转载自blog.csdn.net/qq_20330595/article/details/82744142