小程序 — 云开发
官方文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/capabilities.html
使用云开发,即使用云上的服务,小程序中需要初始化云服务器,绑定云环境。
// app.js App({ onLaunch() { wx.cloud.init({ // 初始化云服务 env: "cloud1-8gwuupf0ad580068" }) } })
云数据库:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database.html
云开发提供了一个 JSON 数据库,顾名思义,数据库中的每条记录都是一个 JSON 格式的对象。一个数据库可以有多个集合(相当于关系型数据中的表),集合可看做一个 JSON 数组,数组中的每个对象就是一条记录,记录的格式是 JSON 对象。
注意:使用云数据库,不需要引入包,直接调用 wx下的API就可以。
const DB = wx.cloud.database().collection("list") // list 是集合名,及表名 DB.add({ data: { name: "石头老师", age: "23" }, success(res) { console.log("添加成功", res); }, fail(err){ console.log("添加失败", err); } })
云函数:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/functions.html
云函数是一段运行在云端的代码,无需管理服务器,在开发工具内编写、一键上传部署即可运行后端代码。
小程序内提供了专门用于云函数调用的 API。开发者可以在云函数内使用
wx-server-sdk
提供的getWXContext
方法获取到每次调用的上下文(appid
、openid
等),无需维护复杂的鉴权机制,即可获取天然可信任的用户登录态(openid
)。
注意:云函数需要在根目录的 project.config.json
文件,新增 cloudfunctionRoot
字段,指定本地已存在的目录作为云开发的本地根目录。
- 服务端运行的函数:
// index.js 是入口文件,云函数被调用时会执行该文件导出的 main 方法 // event 包含了调用端(小程序端)调用该函数时传过来的参数,同时还包含了可以通过 getWXContext 方法获取的用户登录态 `openId` 和小程序 `appId` 信息 const cloud = require('wx-server-sdk') exports.main = async (event, context) => { let { userInfo, a, b} = event let { OPENID, APPID } = cloud.getWXContext() // 这里获取到的 openId 和 appId 是可信的 let sum = a + b return { OPENID, APPID, sum } }
- 小程序调用云函数:
wx.cloud.callFunction({ // 需调用的云函数名 name: 'add', // 传给云函数的参数 data: { a: 12, b: 19, }, // 成功回调 complete: console.log })
- 云函数 同样可以操作 数据库,即后端服务器 操作 数据库。
- 使用 npm:函数的运行环境是 Node.js,因此我们可以使用 npm 安装第三方依赖。
云存储:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/storage.html
// 让用户选择一张图片 wx.chooseImage({ success: chooseResult => { // 将图片上传至云存储空间 wx.cloud.uploadFile({ // 指定上传到的云路径 cloudPath: 'my-photo.png', // 指定要上传的文件的小程序临时文件路径 filePath: chooseResult.tempFilePaths[0], // 成功回调 success: res => { console.log('上传成功', res) }, }) }, })