微信小程序云开发教程-一个js文件如何包含多个云函数
发布于 4 年前 作者 fang82 3016 次浏览 来自 分享

对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控制要调用云函数中的哪个子函数。

2 回复

不错,官方实列OPENAPI也是这样滴

就是做一个函数路由

这个思维模式不错哦~

回到顶部