文章目录
云功能的基本简介
云功能是在云上运行的功能(服务器端):
在物理设计方面,云功能可以由多个文件组成,并占据一定数量的计算资源,例如CPU内存;
每个云功能都是完全独立的,可以部署在不同的区域。
开发人员不需要购买或构建服务器,他们只需要编写功能代码并将其部署到云中即可在Mini程序上调用它。
同时,云功能也可以互相调用。
如何写云功能:
云功能的写入与本地定义的方法相同,并且代码在云上的node.js中运行;
当调用云函数时,定义的代码将在node.js运行环境中执行;
我们可以像Node.js环境中一样在云功能中执行网络请求和其他操作,并且我们还可以通过云功能后端SDK使用各种服务,例如使用云功能SDK中提供的数据库和存储API 。数据库和存储操作
云中开发的云功能的独特优势是与微信登录身份验证的无缝集成。
当Mini程序调用云功能时,云功能的传入参数将被注入Mini 用户的参数。开发人员不需要验证正确性,因为微信已经完成了身份验证的这一部分,并且开发人员可以直接使用它。
云功能的基本用途
您可以右键单击云功能文件夹,然后选择云环境
云功能的使用过程:
右键单击云功能文件夹并创建一个云功能
创建后,您可以在.js文件的输入函数中编写云函数的代码逻辑
const cloud = require('wx-server-sdk') cloud.init() // 云函数入口函数 exports.main = async (event, context) => { // 自己编写的云函数 return "Hello Cloud Function" }
写作后,将云功能上传到云
上传完成后,您可以在Mini程序的中间调用API WX来调用云功能。
<button type="primary" bindtap="onTestTap">测试云函数button>
Page({ async onTestTap() { const res = await wx.cloud.callFunction({ name: "test" }) console.log(res); } })
云功能传输参数
例如:让云功能帮助我们计算两个数字的总和
首先创建一个云功能总和,然后在云函数中编写逻辑代码。写作完成后,上传云功能
// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init() // 云函数入口函数 exports.main = async (event, context) => { // 获取调用者传入的参数, event中获取传入的参数 const { num1, num2 } = event return num1 + num2 }
上传完成后,在Mini程序上调用云功能,然后通过参数传递
async onSumTap() { const num1 = 20 const num2 = 40 const res = await wx.cloud.callFunction({ name: "sum", // data中传递参数 data: {num1, num2} }) console.log(res); }
云功能采集
它可以用作用户身份的标识符,因此在云开发中,我们可以让用户验证用户是否已登录。
获取方法,在云功能中获取微信呼叫上下文。 ():
// 云函数入口函数 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() return { openid: wxContext.OPENID, unionid: wxContext.UNIONID, } }
您可以通过在迷你程序中调用云功能来获得它。
<button type="primary" bindtap="onGetOpenId">获取openidbutton>
async onGetOpenId() { const res = await wx.cloud.callFunction({ name: "getopenid" }) console.log(res); }
云功能操作数据库
云功能中数据库操作的限制更少,因此我们经常在云功能中执行数据库操作:
例如,可以根据条件一次删除多个数据;
例如,数据请求的数量没有严格的限制。小程序一次可以一次请求20个数据,而云功能可以一次要求100个数据。
在云函数中操作数据库的方法类似于中的数据库,但它写入云功能中。
// 云函数入口函数 exports.main = async (event, context) => { // 获取数据库和集合 const db = cloud.database() const studentsCol = db.collection("students") // 从集合中获取数据 const res = await studentsCol.get() // 将数据返回出去 return res }
编写云功能上传后,我们可以在Mini程序上调用云功能以获取结果。
<button type="primary" bindtap="onGetStuengts">获取数据button>
async onGetStuengts() { const res = await wx.cloud.callFunction({ name: "getStudents" }) console.log(res); }