文档
创建第一个云函数
步骤
- 1,在根目录创建一个目录(functions),用于存放云函数
- 2,在小程序根目录找到project.config.json,新增cloudfunctionRoot字段,指定(functions)本地目录作为云函数本地根目录
{
"cloudfunctionRoot": "./functions/"
}
-
3,完成后,云函数目录变成“云目录图标”
-
4,接着创建一个云函数,在云函数根目录右键,选择创建一个Node.js云函数,命名为"checkContent",开发者工具在本地创建出云函数目录和入口文件index.js,同时线上环境创建出对应的云函数
index.js
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
云函数传入两个参数 1,event对象,2,context对象
event对象
event是传给云函数参数 + 外加后端注入小程序的openid和小程序appid
context对象 context对象包含了调用信息和运行状态,可以用它来了解服务器运行情况。
例子
云函数index.js
exports.main = async (event, context) => {
return {
sum : event.a + event.b
}
}
小程序端调用
wx.cloud.callFunction({
name: "cloudFunctionName",
data: {
a: 10,
b: 20
},
success: function (res) {
console.log(res) // 30
}
})
注意
- 0, 云函数有一个默认请求超时:3s,如果在识别一些大图时,超过默认会失败,最长可设置20s
- 1, 云函数内需要建立一个config.json,存放要使用云函数
{
"permissions": {
"openapi": [
"ocr.bankcard",
"uploadFile",
"getTempFileURL"
]
}
}
- 3,云函数中使用 wx-server-sdk 需在对应云函数目录下安装 wx-server-sdk 依赖,在创建云函数时会在云函数目录下默认新建一个 package.json 并提示用户是否立即本地安装依赖
- 4,cloud.init()
初始化云函数,env:1,云函数执行环境,填写环境id,2,获取当前环境
// 1,云函数执行环境,填写环境id
// 给定字符串环境 ID:接下来的 API 调用都将请求到环境 some-env-id
cloud.init({
env: 'some-env-id'
})
// 2,获取当前环境
// 给定 DYNAMIC_CURRENT_ENV 常量:接下来的 API 调用都将请求到与该云函数当前所在环境相同的环境
// 请安装 wx-server-sdk v1.1.0 或以上以使用该常量
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
关于坑
- 1,运行返现 error -1
到更目录app.js onLaunch 添加
// 初始化云函数init
wx.cloud.init({
traceUser: true,
})