b***@163.com
b***@163.com
  • 发布:2022-08-25 19:06
  • 更新:2022-08-26 11:05
  • 阅读:154

【报Bug】clientDB的action函数里面通过throw抛出错误时,无法正确抛出。

分类:uniCloud

产品分类: uniCloud/App

示例代码:

module.exports = {
before: async (state, event) => {
throw "123"
},
after: async (state, event, error, result) => {
if (error) {
throw error
}
return result
}
}

操作步骤:

11

预期结果:

11

实际结果:

11

bug描述:

如果所示:clientDB的action函数里面通过throw抛出错误时,无法正确抛出。

功能场景:clientDB的方式操作数据库比较省力,个人懒得写云对象或者云函数,就直接用schema配置,但是在数据有效性性验证的时候遇到个问题,使用字段值域规则validator方法验证不能满足要求,使用数据权限系统permission又无法拿到接收到的数据进行比较,最后就剩一个办法,只能在action里面做验证。比如:某用户想要发送一条消息,我们判断该用户有无权限的时候,由于前端数据不可信那么只能在action里面才能拿到真实的uid,然后再查库进行判断,如果没有权限 那么在before里面直接throw无权限。

可是就当我正觉得这个方法真牛逼的时候,就出现了如果所示的bug,唯一的救命稻草就这么被狠狠的压倒~。

2022-08-25 19:06 负责人:DCloud_uniCloud_WYQ 分享
已邀请:
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

throw new Error('123') 这样写

要回复问题请先登录注册