gpt4 book ai didi

sql-server - 使用 Sequelize 将对象传递到钩子(Hook)中

转载 作者:太空宇宙 更新时间:2023-11-04 00:37:43 25 4
gpt4 key购买 nike

我正在使用 Sequelize 作为我的 Node 应用程序的数据库 (SQL Server) 交互工具。我想创建一个在表有更新/交互时运行的钩子(Hook),为了解决这个问题,我将调用该表“用户”。我选择使用的钩子(Hook)是 Sequelize 的“afterBulkUpdate”。

我在“用户”模型的定义中定义了钩子(Hook)。我已经验证当“用户”更新时钩子(Hook)会触发。但是,我想要做的是将已更新的单个“User”传递给“afterBulkUpdate” Hook 。我的应用程序被分解为 MVC 架构,实际调用 UserService 内的 Sequelize 的“.update”,而钩子(Hook)是在用户模型中定义的。在这两层之间是实际数据丢失的地方。

TLDR:如果我将我的 User 对象更新为 {"name":"fred","desc":"updated"}。当更新函数没有调用钩子(Hook)的行(我可以看到)时,如何将其传递给我的 Sequelize 钩子(Hook)?

示例代码:
我的 Hook 定义:

hooks: 
afterBulkUpdate: (user, options) ->
console.log "Do something with the actual data here"

我的用户。更新定义:

  update: (user) ->
new Promise (resolve, reject) ->
User.update(
user
where:
name: user.name
)
.then (res) ->
resolve res
.catch (err) ->
reject err

最佳答案

Hook 接收与 update 相同的所有选项:

User.update(user, { where ..., user: user })

在您的 Hook 中,您将可以访问options.user。这些值也应该已经在 .attributes here 中可用。

另一方面,所有的sequelize方法都已经返回一个promise,所以不需要包装它。

关于sql-server - 使用 Sequelize 将对象传递到钩子(Hook)中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38257369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com