收藏
回答

云函数云端测试正常,本地测试正常,唯独模拟测试返回null?

开发者工具版本号:开发版1.05.2104192

操作系统版本:WIN10

问题:某云函数的功能为向集合中插入记录,权限已经设置为read: true, write: true了

在模拟测试时,打印res的result均为null,然后进行本地测试,测试结果正常返回,云端测试也是正常返回。

查看云函数的日志,在模拟测试的时候会报错请求非法

exports.main = async (event, context) => {
  console.log("开始访问数据库");
  const myDate = new Date();
  var latitude = Number(event.latitude);
  var longitude = Number(event.longitude);
  // 获取 WX Context (微信调用上下文),包括 OPENID、APPID、及 UNIONID(需满足 UNIONID 获取条件)等信息
  const wxContext = cloud.getWXContext();
  return new Promise((resolve, reject) =>{
    db.collection('orders').add({
      data: {
        passenger_openid: wxContext.OPENID,
        origin: db.Geo.Point(longitude, latitude),
        date: myDate,
        status: "刚发布"
      },
    }).then(res => {
      console.log(res);
      resolve({
        event,
        orderID: res._id
      })
    })
  })
}
最后一次编辑于  2021-04-26
回答关注问题邀请回答
收藏

2 个回答

  • 傲竹
    傲竹
    2022-02-23

    https://blog.csdn.net/weixin_45304406/article/details/96020254

    看一下是不是这个原因,我和题主遇到的问题类似,这样解决了

    2022-02-23
    有用
    回复
  • Mr.Zhao
    Mr.Zhao
    2021-04-26

    模拟测试没有用户态,获取不到openid

    2021-04-26
    有用
    回复 12
    • 小镇同学
      小镇同学
      2021-04-26
      请问一下这句话是什么意思,在许多地方看到过这句话,但是没理解?在模拟器下,我其他的云函数表现正常,能够识别用户,就是唯一这个函数有问题
      2021-04-26
      回复
    • Mr.Zhao
      Mr.Zhao
      2021-04-26回复小镇同学
      再确认一下,你说的这个模拟测试意思是啥,我理解的是云端调试
      2021-04-26
      回复
    • 小镇同学
      小镇同学
      2021-04-26
      额,模拟测试是在模拟器上测试,即点击微信开发者工具的编译以后的行为
      2021-04-26
      回复
    • Mr.Zhao
      Mr.Zhao
      2021-04-26回复小镇同学
      直接说工具端就可以了,说的这么深奥。如何复现
      2021-04-26
      回复
    • 小镇同学
      小镇同学
      2021-04-26
      就是每次工具端编译运行,运行至调用该函数的语句时,返回值result均为null,然后在云开发控制台的查看该云函数的日志,发现报错请求非法。然后直接在云开发控制台云端调试,行为正常。
      2021-04-26
      回复
    查看更多(7)
登录 后发表内容