持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第10天
今天主要介绍云开发中云函数的一些功能,一起来看看吧!
一、引言
云函数即在云端(服务器端)运行的函数。在物理设计上,一个云函数可由多个文件组成,占用一定量的 CPU 内存等计算资源;各云函数完全独立;可分别部署在不同的地区。开发者无需购买、搭建服务器,只需编写函数代码并部署到云端即可在小程序端调用,同时云函数之间也可互相调用。
一个云函数的写法与一个在本地定义的 JavaScript 方法无异,代码运行在云端 Node.js 中。当云函数被小程序端调用时,定义的代码会被放在 Node.js 运行环境中执行。
我们可以如在 Node.js 环境中使用 JavaScript 一样在云函数中进行网络请求等操作,而且我们还可以通过云函数后端 SDK 搭配使用多种服务,比如使用云函数 SDK 中提供的数据库和存储 API 进行数据库和存储的操作,这部分可参考数据库和存储后端 API 文档。
云开发的云函数的独特优势在于与微信登录鉴权的无缝整合 。当小程序端调用云函数时,云函数的传入参数中会被注入小程序端用户的 openid,开发者无需校验 openid 的正确性因为微信已经完成了这部分鉴权,开发者可以直接使用该 openid。
二、云函数创建
在项目根目录找到 project.config.json文件,新增cloudfunctionRoot字段,指定本地已存在的目录作为云开发的本地根目录,代码如下:
{
"cloudfunctionRoot" : "cloudfunctions / "
}
接着,我们在云函数根目录上右键,在右键菜单中,可以选择创建一个新的 Node.js 云函数,我们将该云函数命名为 add。
开发者工具在本地创建出云函数目录和入口 index.js 文件,同时在线上环境中创建出对应的云函数。我们可以看到类似如下的一个云函数模板:
编写好云函数,需要右键上传并部署,其中代码的意思为将传入a和b相加并作为sum字段返回调用端
注意事项
- 云函数的传入参数有两个,一个是 event 对象,一个是 context 对象。
- event指的是触发云函数的事件,当小程序端调用云函数时,event 就是小程序端调用云函数时传入的参数,外加后端自动注入的小程序用户的 openid 和小程序的 appid。
- context 对象包含了此处调用的调用信息和运行状态,可以用它来了解服务运行的情况。
- 在模板中也默认 require 了 wx-server-sdk,wx-server-sdk这是一个帮助我们在云函数中操作数据库、存储以及调用其他云函数的微信提供的库
三、云函数的调用
- 在小程序中调用这个云函数前,我们还需要先将该云函数部署到云端。
- 在云函数目录上右键,在右键菜单中,我们可以将云函数整体打包上传并部署到线上环境中
小程序中调用该云函数代码如下:
wx.cloud . callFunction ( {
//云函数名称
name : 'add ' ,
//传给云函数的参数
data : {
a : 1 ,
b: 2,
},
})
.then (res =>{
console.log ( res.result) / / 3
})
.catch (console.error)
烟火向星辰,所愿皆成真!