云函数基本介绍:云端运行、独立部署、编写调用方式及环境详解

2025-01-27
来源:网络整理

文章目录

云功能的基本简介

云功能是在云上运行的功能(服务器端):

在物理设计方面,云功能可以由多个文件组成,并占据一定数量的计算资源,例如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); }

分享