云函数怎么返回数据库查询到的数据?
发布于 6 年前 作者 qiangyan 5043 次浏览 来自 官方Issues
// 云函数入口文件
const cloud = require('wx-server-sdk')
 
cloud.init()
//初始化数据库       
 const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext() 
   
   
  try {
    var userinfos = {};
   await db.collection('user').where({
      _openid: wxContext.OPENID
    }).get().then(res => {
       userinfos = res.data[0]
       event=res.data[0]
      console.log("有数据:",userinfos['sushe'])
       

    }) 

     console.log("undefinded:",userinfos['sushe'])

    return {
      event,
      xm: 2,
      sushe: userinfos['sushe'],
      openid: wxContext.OPENID,
      appid: wxContext.APPID,
      unionid: wxContext.UNIONID,
    }

我想获取查询到的结构,然后赋值到userinfos中,然后再用return返回userinfos中的数据,但是在括号外输出的结果为undefinded,该怎么写才能获取到userinfos[‘sushe’]的值。

3 回复

let { data = [{}] } = await db.collection(‘user’).where({

    _openid: wxContext.OPENID

}).get(),

sushe = data[0]

event = sushe

return {

    event,

    xm: 2,

    sushe: sushe,

    openid: wxContext.OPENID,

    appid: wxContext.APPID,

    unionid: wxContext.UNIONID,

}

哈哈,来晚了。看描述解决了。

let p = new Promise((resolve, reject) => {

db.collection(‘user’).where({

_openid: wxContext.OPENID

}).get({

success: res => {

resolve(res)

},

fail: err => {

reject(err)

}

})

})

return await p;

回到顶部