微信小程序云开发(一)
创建项目
步骤不一一描述,这里注意以下注意点:
云开发项目必须要有appid,测试号无法使用
本人未找到测试号可以使用的入口
打开微信开发者工具创建环境
创建成功后如发现项目始终无法关联服务空间,可重启微信开发者工具解决
云函数关联相关
云函数上传前要下载wx-server-sdk依赖(如果index.js中有使用到)
npm install --save wx-server-sdk@latest
注意是在云函数的根目录,而不是项目根目录
导入vant ui框架
具体步骤详见vant官方文档,这里不过多描述
创建homepage页面作为小程序进入的首页
样式如下,主要功能为记录我想记录的英语生词
创建编辑页面edit如下
主要功能为编辑我的生词
项目主功能
- 查询
- 添加
- 删除
创建集合
创建云函数
- cloudfunctions文件右击新建nodejs云函数
- 进入words根目录下载wx-server-sdk依赖
npm install --save wx-server-sdk@latest
操作数据库问题
微信小程序提供两种操作数据库的方式
- 小程序直接操作数据库
- 云函数操作数据库
比较
果涉及『其他用户可以改动别人创建的数据』这种情况的话,建议将数据库操作放在云端。 (一般来说还是这种情况是偏多的,建议直接放在云端)
这里采用云函数操作数据库
考虑有1. 查询 2. 添加 3. 删除三种场景,我这里统一在words云函数中操作
- 小程序传一个type告知云函数是何种操作,
const db = cloud.database()
const {
type
} = event
这里注意是cloud.database() 而不是 wx.
策略模式区分
const rule = {
'query':async ()=>{
//查询业务逻辑
},
'add':async ()=>{
//添加业务逻辑
},
'delete':async ()=>{
//删除业务逻辑
},
}
return rule[type]()
这里注意,三个回调都是异步async 并且需要return rule[type]()
因为云函数返回一个异步结果
云函数查询
const {
pageSize,
pageNum
} = event
return await db.collection('words').orderBy('createTime', 'desc').skip((pageNum - 1) * pageSize).limit(pageSize).get().then(res => {
console.log(res.data)
return res.data
})
云函数新增
const {
word,
wordExplain
} = event
return await db.collection('words').add({
data: {
word: word,
wordExplain: wordExplain,
createTime: db.serverDate() //添加该字段
},
}).then(res => {
return {
code: 200
}
})
云函数删除
const {
id,
} = event
console.log('这里', id)
return await db.collection('words').where({
_id: id
}).remove().then(res => {
return {
code: 200
}
})
注意这里的return await