收藏
回答

云函数删除数据库记录,本地调试成功,云端执行报错,为什么?

调试基础库:2.14.1

API:数据库remove

问题简述:

在云函数中调用数据库集合的remove方法,本地调试时,模拟器触发,本地调试窗口右侧的环境变量env设置不论是选择默认环境还是具体环境ID都能成功执行

而云端执行(同样是模拟器触发)则会报错 Error: collection.remove:fail -501007 invalid parameters。

如果删去try catch的话,报错信息是Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID 1ae93ebc-62ef-4169-904b-623a0ed62c53, cloud function service error code -504002, error message Error: collection.remove:fail -501007 invalid parameters,从这里能直接看到,出现问题确实就是调用remove的参数无效。


其他的很多出现-501007错误的帖子,问题也稀奇古怪,比如不能设置_openid和_id等等。还有的是调用openapi时出现-501007,和这里的具体错误信息也不一样。确实看不出来自己的代码哪里有问题,希望大家指点。


代码如下:

const cloud = require('wx-server-sdk');


cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
});
const wxContext = cloud.getWXContext();
const db = cloud.database();



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

  console.log(wxContext.OPENID)
  try {



    await db.collection("errands_draft").where({
      data:{
        userInfo:{
          openId:wxContext.OPENID
        }
      }
    }).remove()


    await db.collection("errands_released").add({
      data: {
        id: wxContext.OPENID,
        data: event,
        time:new Date().getTime()
      }
    });


    return {
      success:true
    }
  }
  catch(e){
    return {
      err:e,
      successfalse
    }
  }
};





回答关注问题邀请回答
收藏

2 个回答

  • 老张
    老张
    2022-07-14

    1、查询语法错误。

    2022-07-14
    有用
    回复 1
    • 林夏尔
      林夏尔
      2022-07-14
      感谢回答,找到原因了,是因为没取到wxContext
      2022-07-14
      回复
  • Mr.Zhao
    Mr.Zhao
    2022-07-13

    where条件还能这么写啊

    2022-07-13
    有用
    回复 6
    查看更多(1)
登录 后发表内容