对cloudfunction文件夹右键,选择“新建node.js云函数”,得到index.js文件,一般来说,我们通常在该文件中只包含一个功能函数,那么我们如何包含多个函数呢?
比如我们现在新建一个云函数math,其中包含两个功能add加法运算,multiply乘法运算,代码如下:
// 云函数模板
// 部署:在 cloud-functions/login 文件夹右击选择 “上传并部署”
const cloud = require('wx-server-sdk')
// 初始化 cloud
cloud.init({
// API 调用都保持和云函数当前所在环境一致
env: cloud.DYNAMIC_CURRENT_ENV
})
/**
* 这个示例将经自动鉴权过的小程序用户 openid 返回给小程序端
*
* event 参数包含小程序端调用传入的 data
*
*/
exports.main = async (event, context) => {
console.log(event)
console.log(context)
switch (event.action) {
case 'add': {
return add(event)
}
case 'multiply': {
return multiply(event)
}
default: {
return
}
}
}
async function add(event) {
return {
result: event.a + event.b
}
}
async function multiply(event) {
return {
result: event.a * event.b
}
}
前端小程序调用的代码如下:
wx.cloud.callFunction({
name: "math",
data: {
action: 'add',
a:1,
b:2
},
success: res => {
console.log(res)
}
})
结果如下:
核心思想就是:通过前端传一个变量action控制要调用云函数中的哪个子函数。
现在写不了了,报错信息:
Error: TencentCloud API error: {
"Response": {
"Error": {
"Code": "ResourceNotFound.Function",
"Message": "未找到指定的Function,请创建后再试。"
},
"RequestId": "b8e8eaa8-f1ad-41c0-8879-4e959de943b8"
}
}
不错,官方实列OPENAPI也是这样滴
就是做一个函数路由
这个思维模式不错哦~