# 云函数
所谓云函数,就是一段代码在云端执行,执行完毕后将执行的结果返回给本地。
在使用云函数的时候,分为两个步骤:
- 本地编写云函数,上传到云端
- 本地调用云端的函数
**上传云函数**
首先第一步,我们在 project.config.json 里面配置云函数的目录:
```js
"cloudfunctionRoot": "functions/"
```
在上面的代码中,我们指定云函数在根目录下的 functions 目录下面

接下来在 functions 下面创建对应的云函数目录,例如:
之后再在 calc 目录中创建对应的 js 文件,书写云函数对应的逻辑:
> 注意:在编写和调用云函数的时候,一定要注意这是一个异步的过程。
在编写云函数的时候,需要使用到 wx-server-sdk 这个依赖,在终端中 cd 到云函数所在的目录(例如我们这里是 calc),然后首先进行 npm init -y 初始化操作,然后输入 npm i wx-server-sdk 安装该依赖。
云函数的传入参数有两个,一个是 `event` 对象,一个是 `context` 对象。`event` 指的是触发云函数的事件,当小程序端调用云函数时,`event` 就是小程序端调用云函数时传入的参数,外加后端自动注入的小程序用户的 openid 和小程序的 appid。`context` 对象包含了此处调用的调用信息和运行状态,可以用它来了解服务运行的情况。
现在我们的云函数就已经编写完毕了。
编写完毕后我们需要上传这个云函数到云端
上传云函数成功之后,可以在控制面板的【云函数】面板中看到刚才所上传的云函数。

**本地调用云端的函数**
在本地,通过 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
})
```