评论

微信小程序云开发教程-一个js文件如何包含多个云函数

微信小程序云开发教程

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


点赞 3
收藏
评论

3 个评论

  • 🍀
    🍀
    03-20

    现在写不了了,报错信息:

    Error: TencentCloud API error: {

    "Response": {

    "Error": {

    "Code": "ResourceNotFound.Function",

    "Message": "未找到指定的Function,请创建后再试。"

    },

    "RequestId": "b8e8eaa8-f1ad-41c0-8879-4e959de943b8"

    }

    }


    03-20
    赞同
    回复
  • admin
    admin
    2020-08-19

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

    2020-08-19
    赞同
    回复 1
    • 施建锋 Jeff
      施建锋 Jeff
      2020-08-20
      嗯嗯,我就是抄这个的o(* ̄︶ ̄*)o,整理出来让更多人知道
      2020-08-20
      回复
  • Admin ²º²⁴
    Admin ²º²⁴
    2020-08-19

    就是做一个函数路由

    这个思维模式不错哦~

    2020-08-19
    赞同
    回复 1
    • 施建锋 Jeff
      施建锋 Jeff
      2020-08-19
      这其实是看官方代码里的一个例子,然后把它整理出来,很多人都是一个函数一个文件o(* ̄︶ ̄*)o
      2020-08-19
      回复
登录 后发表内容