hhyang
hhyang
  • 发布:2023-02-22 15:38
  • 更新:2023-02-22 16:35
  • 阅读:879

【报Bug】uni-id-users.schema.json DB Schema扩展js无法触发

分类:uniCloud

产品分类: uniCloud/App

示例代码:
  • uni-id-users.schema.ext.js

    //uni-id-users.schema.ext.js  
    module.exports = {     
    trigger: {  
        beforeRead:async function (event) {  
            console.log(event)  
        },  
        beforeCreate: async function (event) {  
            console.log(event)  
        },  
        afterCreate:async function (event) {  
            console.log(event)  
        },  
        beforeUpdate:async function (event) {  
            console.log(event)  
        },  
        afterUpdate:async function (event) {  
            console.log(event)  
        },  
    
    }  
    }
  • 微信小程序一键登录
    const uniIdCo = uniCloud.importObject('uni-id-co',{customUI: true})  
    await uniIdCo.loginByWeixin({  
    code,  
    inviteCode:``  
    })

操作步骤:

使用admin模块创建基本项目体系,然后客户端关联该项目使用同一空间

  • 微信小程序一键登录 成功将数据插入到了 uni-id-users 表中,但无论读取还是写入操作都跳过DB Schema扩展js
  • admin后台登录能正常触发

预期结果:

正常触发

实际结果:

无法触发

bug描述:

已经创建 uni-id-users.schema.ext.js 但是当 uni-id-users表中已经插入了数据或者读取数据时 未触发对应的数据库触发器

2023-02-22 15:38 负责人:无 分享
已邀请:
hhyang

hhyang (作者) - 如有问题,请添加QQ1606726660 备注付费咨询

我的问题

JQL的数据库触发器,用于在执行一段JQL数据库指令(增删改查等)的同时触发相应的操作。

仅限使用JQL来操作数据库,客户端和云端均可以执行JQL。但使用传统MongoDB写法不支持数据库触发器。

可以使用触发器方便的实现很多功能,例如:

更新数据时自动将更新时间修改为当前时间
读取文章详情后阅读量加1
发布一篇文章后自动给文章作者列表文章数量加1
由于数据库触发器是在云端执行的,所以clientDB操作数据库时很多不宜写在前端的代码,就可以挪到数据库触发器中实现。

如果把数据库的schema定义好,包括json和ext.js,那么各个业务模块就可以随便安心的调用数据库了,数据一致性逻辑和安全保障将被统一管理,不担心不良业务代码的破坏、不担心哪次调用会漏掉更新时间字段。

DCloud_heavensoft

DCloud_heavensoft

这个是因为uni-id写入数据表,没有使用jql写法而是使用传统MongoDB写法造成的。

  • hhyang (作者)

    谢谢 我看了代码然后仔细阅读了文档 已经发现问题并解决了

    2023-02-22 16:42

  • 7***@qq.com

    回复 hhyang: 你好,请问这个怎么解决的

    2023-09-13 15:43

  • 7***@qq.com

    只有creatd无法触发,update可以触发

    2023-09-13 16:03

  • hhyang (作者)

    回复 7***@qq.com: 我记得是去改了他们源码 然后解决的

    2023-09-13 16:43

该问题目前已经被锁定, 无法添加新回复