云函数
使用云函数只需要三步:
1、编写云函数 2、一键部署云函数 3、调用云函数
使用云函数的优势:在云函数中运行的代码拥有不受限的数据库读写权限和云文件读写权限。云函数运行在云端 Node.js 环境中,而云数据库运行在小程序本地,前者实现的功能更加丰富
要注意,在 cloud 文件夹中的环境要和 app.js 中的环境一致,随后在 cloud 文件夹处右键,新建 Node.js 云函数:
// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境 // 云函数入口函数 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() return { event, openid: wxContext.OPENID, appid: wxContext.APPID, unionid: wxContext.UNIONID, } }
如果要获取数据库中的数据,可以这样改写:
// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境 const db = cloud.database() // 云函数入口函数 exports.main = async (event, context) => { return await db.collection('medicine').get() }
注意随后右键,上传并部署:云端安装依赖
调用云函数:
onLoad() { wx.cloud.callFunction({ name: "getData" }).then(res => { console.log(res) }) }
云函数可以像普通的函数一样传递参数,将参数放入 data 中,随后在 event 中调用即可:
onLoad() { wx.cloud.callFunction({ name: "getData", data: { collection: "medicine" } }).then(res => { console.log(res) }) }
exports.main = async (event, context) => { const collection = event.collection return await db.collection(collection).get() }