2024-08-27 10:08:47 +08:00

73 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 云函数
所谓云函数,就是一段代码在云端执行,执行完毕后将执行的结果返回给本地。
在使用云函数的时候,分为两个步骤:
- 本地编写云函数,上传到云端
- 本地调用云端的函数
**上传云函数**
首先第一步,我们在 project.config.json 里面配置云函数的目录:
```js
"cloudfunctionRoot": "functions/"
```
在上面的代码中,我们指定云函数在根目录下的 functions 目录下面
![image-20230203141842697](https://xiejie-typora.oss-cn-chengdu.aliyuncs.com/2023-02-03-061843.png)
接下来在 functions 下面创建对应的云函数目录,例如:
<img src="/Users/jie/Library/Application Support/typora-user-images/image-20230203143202123.png" alt="image-20230203143202123" style="zoom:50%;" />
之后再在 calc 目录中创建对应的 js 文件,书写云函数对应的逻辑:
<img src="https://xiejie-typora.oss-cn-chengdu.aliyuncs.com/2023-02-03-063310.png" alt="image-20230203143309653" style="zoom:50%;" />
> 注意:在编写和调用云函数的时候,一定要注意这是一个异步的过程。
在编写云函数的时候,需要使用到 wx-server-sdk 这个依赖,在终端中 cd 到云函数所在的目录(例如我们这里是 calc然后首先进行 npm init -y 初始化操作,然后输入 npm i wx-server-sdk 安装该依赖。
云函数的传入参数有两个,一个是 `event` 对象,一个是 `context` 对象。`event` 指的是触发云函数的事件,当小程序端调用云函数时,`event` 就是小程序端调用云函数时传入的参数,外加后端自动注入的小程序用户的 openid 和小程序的 appid。`context` 对象包含了此处调用的调用信息和运行状态,可以用它来了解服务运行的情况。
现在我们的云函数就已经编写完毕了。
编写完毕后我们需要上传这个云函数到云端
<img src="https://xiejie-typora.oss-cn-chengdu.aliyuncs.com/2023-02-03-063504.png" alt="image-20230203143504058" style="zoom:50%;" />
上传云函数成功之后,可以在控制面板的【云函数】面板中看到刚才所上传的云函数。
![image-20230203143730905](https://xiejie-typora.oss-cn-chengdu.aliyuncs.com/2023-02-03-063731.png)
**本地调用云端的函数**
在本地,通过 wx.cloud.callFunction 来进行云函数的调用
```js
wx.cloud.callFunction({
// 云函数名称
name: 'add',
// 传给云函数的参数
data: {
a: 1,
b: 2,
},
success: function(res) {
console.log(res.result.sum) // 3
},
fail: console.error
})
```