8***@qq.com
8***@qq.com
  • 发布:2024-12-21 20:57
  • 更新:2025-03-01 21:06
  • 阅读:241

schema拓展测试

分类:uniCloud

我想要使用DB Schema扩展js,我加了一个测试代码,因为是第一次用,所以我要测试我用的方式对不对,官方文档说【目前仅上线数据库触发器功能】。我在本地用微信小程序连接的远程云函数,执行 const result = await db.collection("users").get()查询代码,然后在云函数的日志中未能找到Schema.js的那3个打印日志。请问是我的方式不对吗?还是哪出了问题

2024-12-21 20:57 负责人:无 分享
已邀请:
DCloud_uniCloud_CRL

DCloud_uniCloud_CRL

首先你要确保db 是uniCloud.databaseForJQL,其次日志需要去clientDB日志那里查看。

  • 8***@qq.com (作者)

    本地云函数和云端云函数都无法拿到clientInfo,我也配置了运行测试参数,但还是不行

    2024-12-25 17:37

  • aoaobaba

    大哥,你们uni-id-co模块能改为forjql 处理用户注册新增记录吗? 现在用database() 就不支持数据库触发器!想用uni-id-users 里面的触发器都不行

    2025-03-03 09:45

8***@qq.com

8***@qq.com (作者) - 小学一下代码

图片代码都在这里,麻烦帮忙看看

8***@qq.com

8***@qq.com (作者) - 小学一下代码

这个是test扩展的代码// schema扩展相关文档请参阅:https://uniapp.dcloud.net.cn/uniCloud/jql-schema-ext.html
module.exports = {
trigger: {
beforeRead: async function({
clientInfo
} = {}) {
console.log("aaaaaa", clientInfo);
const dbJQL = uniCloud.databaseForJQL({
clientInfo,
skipTrigger: true // true跳过执行触发器,false则继续执行触发器。默认为false
})
dbJQL.collection("test").add({
nickname: "你好测试",
clientInfo: {
...clientInfo
}
})
},
afterRead: async function({
clientInfo
} = {}) {
console.log("读取后触发", clientInfo);
},
beforeCreate: async function() {
console.log("新增后触发");
},
}
}。然后截图是调用的位置

aoaobaba

aoaobaba - 稳中有进 别急~ 慢慢来

遇到同样问题,触发器不清楚到底有无执行,我在user表创建一个触发器,after create 记录后简单的写入另一个表一笔数据,用户注册成功后,测试表没记录,user表记录创建了。根本不知道,哪里有问题啊

  • aoaobaba

    我去,uni-id-co 模块使用了uniCloud.database() 处理数据,不支持触发器!!!!!

    2025-03-03 09:44

要回复问题请先登录注册

  • 标题 / 粗斜体
  • 代码片段
  • 超链接 / 图片 / 视频
  • 列表 / 引用

文章内容较多时,可以用标题分段 :

## 大标题 
### 小标题

斜体 / 粗体 :

**粗体** 
*斜体*
***粗斜体***

代码片段 :

``` javascript
代码片段
```

超链接 :

[链接文字](链接地址) 例: [百度](http://www.baidu.com)

图片 :

![图片说明](图片地址) 例: ![百度logo](http://www.baidu.com/img/bdlogo.gif)

视频 :

!![视频说明](视频地址) 例: !![优酷视频](http://youku.com)

有序列表 :

1. 123
2. 123
3. 123

无序列表 :

- 123
- 123
- 123

引用 : ( 双回车后结束引用 )

> 引用内容
引用内容
引用内容