开发者可以使用云开发开发微信小程序、小游戏,无需搭建服务器,即可使用云端能力
云开发提供的几大基础能力:
1.云函数:无需自建服务器
2.数据库:无需自建数据库
3.储存:无需自建存储和 CDN
4.云调用:原生微信服务集成
在开始使用数据库 API 进行增删改查操作之前,需要先获取数据库的引用
const db = wx.cloud.database()
获取其它环境的数据库引入:
const testDB = wx.cloud.database({
//env为环境名
env: 'test'
})
//collection内添加的是 集合名
//add方法用来往指定集合中添加一条数据
db.collection('...').add({
// data 字段表示需新增的 JSON 数据
data: {
},
//添加成功后执行的函数
success: function(res) {
// res 是一个对象,其中有 _id 字段标记刚创建的记录的 id
console.log(res)
}
})
只要传入的对象中没有success
,fail
或complete
,add方法就会返回一个Promise
db.collection('...').add({
data: {
}
}).then(res=>{
console.log(res)
})
remove
方法
删除一条数据
// collection同上 doc中添加的是生成数据后其中的 _id的 属性值
db.collection('...').doc('...').remove({
success: function(res) {
console.log(res.data)
}
})
update
方法,局部更新,更新一条数据或一个集合中的数据
db.collection('...').doc('...').update({
// data 传入需要局部更新的数据
data: {
// 表示将 done 字段置为 true
done: true
},
success: function(res) {
console.log(res)
}
})
get
方法,获取一条数据
获取一条数据
db.collection('...').doc('...').get({
success: function(res) {
// res.data 包含该记录的数据
console.log(res.data)
}
})
获取多条数据,通过 where 方法
where方法中可以理解为筛选条件
db.collection('...').where({
sex:'男',
age: 20
})
.get({
success: function(res) {
// res输出的数据为所有年龄大于20的男性
console.log(res.data)
}
})
获取一个集合的数据
db.collection('...').get({
success: function(res) {
// res是一个包含集合中有权限访问的所有记录的数据,不超过 20 条
console.log(res.data)
}
})
这些指令都依赖db.command
对象
1.eq 等于
2.neq 不等于
3.lt 小于
4.lte 小于或等于
5.gt 大于
6.gte 大于或等于
7.in 字段值在给定数组中
8.nin 字段值不在给定数组中
云函数即在云端(服务器端)运行的函数
在项目根目录找到project.config.json
文件,新增 cloudfunctionRoot
字段,指定本地已存在的目录作为云函数的本地根目录
云函数模板
// 云函数入口文件
const cloud = require('wx-server-sdk')
//先初始化,再执行别的操作
cloud.init()
//使用增删改查功能前先声明
const db = cloud.database();
const _ = db.command;
// 云函数入口函数
//event 是触发云函数的事件
//context 对象包含了此处调用的调用信息和运行状态
//函数内可以对数据库的数据进行操作
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
在小程序中调用云函数
wx.cloud.callFunction({
// 云函数名称
name: '...',
// 传给云函数的参数
data: {
a: 1,
b: 2,
},
success: function(res) {
console.log(res) // 3
},
fail: console.error
})