module.exports = {
before: async (state, event) => {
throw "123"
},
after: async (state, event, error, result) => {
if (error) {
throw error
}
return result
}
}
- 发布:2022-08-25 19:06
- 更新:2022-08-26 11:05
- 阅读:154
产品分类: uniCloud/App
示例代码:
操作步骤:
11
11
预期结果:
11
11
实际结果:
11
11
bug描述:
如果所示:clientDB的action函数里面通过throw抛出错误时,无法正确抛出。
功能场景:clientDB的方式操作数据库比较省力,个人懒得写云对象或者云函数,就直接用schema配置,但是在数据有效性性验证的时候遇到个问题,使用字段值域规则validator方法验证不能满足要求,使用数据权限系统permission又无法拿到接收到的数据进行比较,最后就剩一个办法,只能在action里面做验证。比如:某用户想要发送一条消息,我们判断该用户有无权限的时候,由于前端数据不可信那么只能在action里面才能拿到真实的uid,然后再查库进行判断,如果没有权限 那么在before里面直接throw无权限。
可是就当我正觉得这个方法真牛逼的时候,就出现了如果所示的bug,唯一的救命稻草就这么被狠狠的压倒~。