文章目录
###开场白:
云开发顾名思义
就是后端开发,应该是微信上周才推出的开放能力,现在这让我想起了以前的leancloud,和更早的bmob了,而leancloud一早就开始支持微信小程序开发了,相比较而言,leancloud的资料应该更多些,但毕竟微信自家的产品,还是有必要试试的。
这边总结一下使用体验,首先微信的API有微信味,下面是初始化方法。
wx.cloud.init({ //环境ID env: 'much-de492f', //获取调用api者的信息 traceUser: true, })
所以还是很方便的。其次是添加数据的时候是完全图形化的的,这点很好。
###看的很清楚了
* 集合 = 表
* 记录 = 数据元素
当然 数据库只能建一个,第一次进来的时候是空的,新建的时候起好名字就行了。
###记得把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) })
好了,微信云开发简单的入门教程就这么多了。
###参考资料:
* Slog71_微信小程序之云开发-全栈时代3
<https://blog.csdn.net/u010997452/article/details/82676378>
* 小程序·云开发
<https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html>
关注公众号领取更多干货
热门工具 换一换