module.exports = {
trigger: {
afterRead: async function ({
collection,
operation,
where,
field,
result
} = {}) {//如果这里的 = {} 去掉也不行
console.log(result,'拦截read资源')
}
}
}
7***@qq.com
- 发布:2022-12-29 16:00
- 更新:2022-12-29 16:03
- 阅读:306
产品分类: uniCloud/App
示例代码:
操作步骤:
unicloud使用了数据库触发器就报错
unicloud使用了数据库触发器就报错
预期结果:
正确执行
正确执行
实际结果:
报错
报错
bug描述:
按下面代码应该不会对jql查询有任何影响吧,但却读请求报错了
7***@qq.com (作者)
[gd-sys/ac1cc2f81672300507320175432/332ms/ERROR] Unexpected token u in JSON at position 0
Error: Unexpected token u in JSON at position 0
at _callCloudFunction (/tmp/function/@common_modules/uni-cloud-jql/index.js:1:6047)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at getResourceList (/tmp/function/__index.js:380:18)
at exports.main (/tmp/function/__index.js:789:15)
at Z (/tmp/function/index.js:1:23891)
at ee (/tmp/function/index.js:1:24095)
at runUserFunction (/code/index.js:98:271586)
at (/code/index.js:98:266752)
请求响应状态: fail
2022-12-29 16:10
DCloud_uniCloud_WYQ
回复 7***@qq.com: getResourceList 里面怎么写的?
2022-12-29 17:25
DCloud_uniCloud_WYQ
回复 7***@qq.com: 调用了setUser方法吗?如果是的话可以把角色权限uid都写在setUser内看看正常不正常
2022-12-29 17:31
7***@qq.com (作者)
回复 DCloud_uniCloud_WYQ:
const dbRes = await dbJql.collection('gd_sys_resource').get();console.log(dbRes,'=====资源拦截后');
主要是这句,加了数据库触发器后下面的console就打印不出了2022-12-29 17:33
DCloud_uniCloud_WYQ
回复 7***@qq.com: 有没有在执行查询前调用dbJql的setUser方法
2022-12-29 17:40
7***@qq.com (作者)
回复 DCloud_uniCloud_WYQ: 这个没有哎
2022-12-30 08:41
DCloud_uniCloud_WYQ
回复 7***@qq.com: 可以发我你的云函数或者云对象吗?
2022-12-30 11:23
7***@qq.com (作者)
回复 DCloud_uniCloud_WYQ: 我的云函数里面其它业务的代码很多哎,都发你太多了,我先只执行
const dbRes = await dbJql.collection('gd_sys_resource').get();console.log(dbRes,'=====资源拦截后');
这两句的云函数先试一下,看会不会报错。主要我这边不加触发器一点问题都没有,加了触发器就报错。2022-12-30 12:32
DCloud_uniCloud_WYQ
回复 7***@qq.com: 我这边测试只有调用setUser且不传permission才会报错。可以整理一个简单的demo发我吗
2022-12-30 13:16
7***@qq.com (作者)
回复 DCloud_uniCloud_WYQ: 哦,我好像调用了setUser,那为啥不能用呀
2022-12-30 13:32
7***@qq.com (作者)
回复 DCloud_uniCloud_WYQ: 怎么样正确传参才能使用
setUser
呢?我希望jql有admin的权限,请问怎么操作呢?2022-12-30 14:06
DCloud_uniCloud_WYQ
回复 7***@qq.com: setUser的时候传({role: ['admin'], permission:[]})
2022-12-30 14:23
DCloud_uniCloud_WYQ
回复 7***@qq.com: 这个问题后续会修复
2022-12-30 14:23
7***@qq.com (作者)
回复 DCloud_uniCloud_WYQ: 好的
2022-12-30 14:46
7***@qq.com (作者)
回复 DCloud_uniCloud_WYQ: 再问个问题哈,请问能否定义一个所有数据库都会触发的触发器,而不是一个表定义一个,因为我想用触发器实现自增主键,但每个表都要加一个触发器感觉不方便
2022-12-30 15:36
DCloud_uniCloud_WYQ
回复 7***@qq.com: 这个不支持
2022-12-30 15:39
7***@qq.com (作者)
回复 DCloud_uniCloud_WYQ: 希望能支持下,或提供一个自增主键的方案,这样unicloud数据库能兼容市面上的mysql等数据库的主键策略。能兼容主流后端项目迁移到unicloud。
2022-12-30 16:15