开发文档
后台创建
入口授权
插件版SDK
插件的思路确实很独特,帮用户省去一些配置,比如设定安全服务域名
初始化校验校验通过
如果看到如上界面,代码校验通过
用户表通过查看用户表,确实通过
wx.BaaS.auth.loginWithWechat()
创建了一个用户
CURD
原型参考文档
https://doc.minapp.com/js-sdk/schema/#wechat-32
报错信息未建表报错如下:Error: 404: not found
未建字段报错如下:Error: 400: The payload does not match the
既要建表还要建字段,这跟之前用过的BaaS【LeanCloud Bmob 微信云】都不相同,哪怕是微信云开发,也只是要建好表,保证表存在就可以。
增加数据
// 获取文本框里的内容
const title = e.detail.value
// 如果文本为空,给出toast提示
if (!title) {
wx.showToast({
title: '请输入内容'
})
return
}
let tableName = 'Todo'
// 通过 `tableName` 实例化一个 `TableObject` 对象,操作该对象即相当于操作对应的数据表
let Todo = new wx.BaaS.TableObject(tableName)
// 本地创建一条空记录
let todo = Todo.create() // todo 为 TableRecord 实例
let item = {
title: title
}
// 为上面创建的空记录赋值,并保存到服务器,save() 方法返回一个 Promise 对象
todo
.set(item)
.save()
.then(res => {
console.log(res)
wx.showToast({
title: '保存成功'
})
})
添加成功后,数据同时返回一份到res.data中,方便二次使用,而不用再去查询一遍数据库。
回显数据读取数据
返回的数据在res.data.objects中
数据读取代码如下
loadData() {
let Todo = new wx.BaaS.TableObject('Todo')
const query = new wx.BaaS.Query()
Todo.setQuery(query)
.find()
.then(res => {
// find 方法返回值为一个 Promise
console.log(res)
const todos = res.data.objects
this.setData({
todos: todos
})
})
},
修改数据
edit(e) {
// 获取input组件上的取值
const title = e.detail.value
// 设定currentIndex值
const index = e.currentTarget.dataset.index
// 获取原来数据源
let todos = this.data.todos
// 修改当前元素的title值
const recordID = todos[index]._id
// 更新 tableName 为 'Todo' 的数据表中 id 为 currentId 的数据行的 title 字段
let tableName = 'Todo'
let Todo = new wx.BaaS.TableObject(tableName)
let todo = Todo.getWithoutData(recordID)
todo.set('title', title)
todo.update().then(
res => {
// success
wx.showToast({
title: '修改成功'
})
this.loadData()
this.setData({
currentIndex: -1
})
},
err => {
console.log(err)
// err
}
)
},
顺便提一下,如果在js代码中要读取数据对象的属性,直接使用点语法就可以,不必使用.get(),其实也没有.get()方法,这跟之前用的BaaS有所不同
删除
// 删除 tableName 为 'Todo' 的数据表中 recordID 的数据项
let tableName = 'Todo'
let recordID = this.data.todos[item]._id
let Todo = new wx.BaaS.TableObject(tableName)
Todo.delete(recordID).then(
res => {
// success
this.loadData()
wx.showToast({
title: '删除成功'
})
// checkIndices将它复位
this.setData({
checkIndices: []
})
},
err => {
// err
}
)
【正文完】
源码
https://gitee.com/laeser/demo-weapp 代码位于pages/todo-zx
文件夹下
网友评论