云函数代码的两种格式举例
发布于 4 年前 作者 pwan 713 次浏览 来自 分享

说明:本文仅列出 Javascript 的箭头函数(ES6)与普通函数的例子,无更多参考价值。

箭头函数:

exports.main = (event, context) => {}

普通函数:

module.exports = { main: mainproc }
function mainproc(event, context){}

如您有兴趣阅读,请继续。


云函数代码的格式,一种是开发工具带的例子:exports.main = async (event, context) => {}。

代码例子:更新数据库字段并返回执行情况。其中用到 async/await 函数特性。

/* cloud function  */
const cloud = require('wx-server-sdk')
cloud.init({env: env1})
const db1 = cloud.database()

exports.main = async (event, context) => {
        return await db1.collection(col1).doc(event.docid).update({ data: { para1: event.para1 } })
}

另一种格式是:

module.exports = { main: mainproc }
function mainproc(event, context){}

代码例子:根据 openid 查询数据库字段并返回查询结果。在主函数中调用一个函数,它是具有async/await 特性的数据库查询函数。

/* cloud function  */
const cloud  = require('wx-server-sdk')
cloud.init({env: env1})
const db1 = cloud.database()

module.exports = { main: mainproc }

function mainproc(event, context){
         const wxContext = cloud.getWXContext()
         var openid = wxContext.OPENID
         var lca = proc1(openid)
         return lca
}

async function proc1(str1){ 
      var lca = await db1.collection(col1).where({_openid: str1}).get()

      if(lca.data.length==0){
         return {result: "nothing"}
      }  

      if(lca.data.length>1){
         return {result: "error"}
      }

      lca = lca.data[0]
      return {result: "ok", username: lca.username} 
}

我习惯用第二个。都列出来供参考。

2 回复

没看出什么区别来。object.field=value和object={field:value}有什么区别吗?

回到顶部