微信小程序 云函数批量删除多条数据 Error: errCode: -502005 database collection not exists

因为本地只能删除一条,所以用云函数来执行删除多条记录,找了一天的bug,重点是 云函数编译器没有提示错误,只能通过返回内容查看,记录一下:

本地调用云函数的js:

wx.cloud.callFunction({
 name: 'lockRemove', // 云函数名称
  data: {
    orderCode : this.data.orderCode
  },success: function(res){
    console.log(res); // 返回的是 调用云函数这个过程的结果,不是云函数执行的结果
  },fail: function(res){
    console.log(res);
  }
})

云函数:
这个地方自己踩了很多坑:

  1. 首先 cloud.init :公司有两个云环境,app.js中定义了一个env,我以为不需要再定义了,但是一直如果init内不加env,会报“Error: errCode: -502005 database collection not exists”异常。
  2. 之前查文档,很多人是表名写错导致这个异常,collection(‘collectionName’)
  3. 跟第二个一样,注意单词拼写,有一些比如collection的单词拼写错,云函数没有错误提示(这个很狗血),所以一定好好检查自己的代码。
  4. 定义cloudinitdatebase一个都不能少。
  5. 右键自己云函数文件夹看看自己的云环境和定义的是否一样,如果调用云函数,没有返回结果,得去自己的云开发–云函数列表里查看是否有自己上传的云函数,如果没有,可能环境错了,记得更正。

// 使用了 async await 语法
const cloud = require('wx-server-sdk')
cloud.init({
  env: 'br-20210607-0gcoovhi30xxxxx' // 这个地方放自己的云函数环境
})
const db = cloud.database()
const _ = db.command

exports.main = async (event, context) => {
  let {
    orderCode
  } = event;
  console.log(orderCode); // console的结果在 云开发--云函数--日志中查看
  try {
    return await  db.collection('lock').where({
      orderCode: orderCode
    }).remove() // 返回调用结果
  } catch(e) {
    console.error(e)
  }
}

调用成功的话 返回数据 如图:
在这里插入图片描述
找了一天的bug,心态炸裂,如果有同样问题的小伙伴,有别的异常解决的,也可以留言帮助下更多的小可爱~

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值