微信云开发提供了多个基础能力,包括数据库,储存,云函数,云调用,和HTTP API
一、云服务的初始化
在app.json文件中的onLauch字段中进行,
wx.cloud.init({
env:'云开发的id',
traceUser:true//是否可以查看访问的用户信息
})
二、云函数开发环境搭建
需要在project.config.json文件中指明云函数的存储路径
"cloudfunctionRoot": "储存云函数的文件名",
右击文件夹后可以选择云函数所储存的云环境
三、云数据库
数据库中利用集合来存储数据,可以使用add来在集合中插入数据
userCollection.add({
data:{
u_account:account,
u_pwd:pwd
}
})
查询数据
// 1. 获取数据库引用
const db = wx.cloud.database()
// 2. 构造查询语句
// collection 方法获取一个集合的引用
// where 方法传入一个对象,数据库返回集合中字段等于指定值的 JSON 文档。API 也支持高级的查询条件(比如大于、小于、in 等),具体见文档查看支持列表
// get 方法会触发网络请求,往数据库取数据
db.collection('books').where({
publishInfo: {
country: 'United States'
}
}).get({
success: function(res) {
// 输出 [{ "title": "The Catcher in the Rye", ... }]
console.log(res)
}
})
四、云存储
可以通过自己手动上传到云存储中,通过复制id可以实现存储数据的传输,
文件的上传:
wx.cloud.uploadFile({
cloudPath: 'example.png', // 上传至云端的路径,放在云端的哪
filePath: '', // 小程序临时文件路径,也就是要上传的文件路径
success: res => {
// 返回文件 ID
console.log(res.fileID)
},
fail: console.error
})
可以通过filePath来实现上传更换头像的操作
五、云函数的创建
搭建完后,我们在云函数根目录上右键,在右键菜单中,可以选择创建一个新的 Node.js 云函数,命名完后,在exports.main = async(event,context) => {}中写函数主体
event指的是触发云函数的事件,当小程序端调用云函数时,event 就是小程序端调用云函数时传入的参数,外加后端自动注入的小程序用户的 openid 和小程序的 appid。
context对象包含了此处调用的调用信息和运行状态,可以用它来了解服务运行的情况。
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数,函数内容在这里面写
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
在小程序中调用这个云函数前,我们还需要先将该云函数部署到云端。在云函数目录上右键,在右键菜单中,我们可以将云函数整体打包上传并部署到线上环境中。
部署完毕后,就可以在小程序中调用云函数了
wx.cloud.callFunction({
// 云函数名称
name: 'add',
// 传给云函数的参数
data: {
a: 1,
b: 2,
},
success: function(res) {
console.log(res.result.sum) // 3
},
fail: console.error
})