微信小程序提供了云开发能力,即可使用云函数来方便地访问云端资源。云函数是在云开发基础设施上运行的一种业务逻辑,可以与各种微信小程序组件、云数据库和其他第三方服务一起使用。本文将介绍如何在微信小程序开发工具中调用云函数。
1. 新建云函数
首先,在微信小程序开发工具中,在左侧的导航栏中找到云开发,并点击“云函数”选项卡。这里可以看到已经建立的云函数列表,如图所示:
![云函数列表](https://cdn.jsdelivr.net/gh/linlinjava/image-store/blog/cloudfunctionlist.png)
点击右上角的“新建云函数”按钮,在弹出的创建云函数页面中选择 Node.js 运行环境,再选择一个模板,比如 HTTP API。创建完成后,会自动生成一个 index.js 文件,在其中可以定义业务逻辑。例如,以下 HTTP API 的示例代码实现了一个接收 GET 请求并返回 JSON 数据的功能:
```
exports.main = async (event, context) => {
return {
statusCode: 200,
headers: {
'Content-Type': 'application/json'
},
body: {
message: 'Hello, World!'
}
}
}
```
2. 上传云函数
定义好云函数之后,需要将其上传到云服务器。右键点击云函数,在弹出的选项中选择“上传并部署”。
![上传云函数](https://cdn.jsdelivr.net/gh/linlinjava/image-store/blog/uploadcloudfunction.png)
上传并部署完成后,可在云函数的详情页面中查看其执行状态和运行日志。
![云函数详情](https://cdn.jsdelivr.net/gh/linlinjava/image-store/blog/cfdetail.png)
3. 调用云函数
在代码中调用云函数可以使用 wx.cloud.callFunction() API。如以下代码所示,这里调用了前面创建的 HTTP API 云函数:
```
wx.cloud.callFunction({
name: 'httpapi',
data: {
message: 'Hello'
},
success: res => {
console.log(res.result)
},
fail: err => {
console.error(err)
}
})
```
wx.cloud.callFunction() 接收一个对象作为参数,其中:
- name:云函数名称,必填项。
- data:传递给云函数的参数,可以是任何 JS 对象。
- success:云函数调用成功时的回调函数。
- fail:云函数调用失败时的回调函数。
除了 wx.cloud.callFunction() 外,还可以使用 wx.cloud.getTempFileURL()、wx.cloud.deleteFile()、wx.cloud.uploadFile() 等云函数 API 进行操作。
需要注意的是,为了确保安全性,所有上传到云服务器的代码都需要经过认证身份。开发者需要在小程序后台配置云环境 ID,并在代码中使用 wx.cloud.init() API 进行初始化:
```
wx.cloud.init({
env: '环境 ID',
traceUser: true,
})
```
这样,在调用 wx.cloud.callFunction() 时,就可以自动使用已经初始化过的云环境。
总之,云函数提供了便利的服务器端解决方案。如上所述,只需要简单的几个步骤就可以创建和使用云函数。在大多数情况下,云函数可以轻松地访问和维护云端应用的重要数据。