【发布时间】:2016-11-10 11:23:10
【问题描述】:
我将 Sequelize 用于我的节点应用程序的数据库 (SQL Server) 交互工具。我想创建一个在表有更新/交互时运行的钩子,为了这个问题,我将把这个表称为“用户”。我选择使用的钩子是 Sequelize 的“afterBulkUpdate”。
我在“用户”模型的定义中定义了钩子。我已经验证了当“用户”更新时钩子会触发。但是,我想要做的是将已更新到“afterBulkUpdate”挂钩的个人“用户”传入。我的应用程序被分解为 MVC 架构,在 UserService 中实际调用 Sequelize 的“.update”,而挂钩是在用户模型中定义的。在这两层之间是实际数据丢失的地方。
TLDR: 如果我将我的用户对象更新为 {"name":"fred","desc":"updated"}。当更新函数没有一行(我可以看到)调用钩子时,如何将它传递给我的 Sequelize 钩子?
示例代码:
我的 Hook 定义:
hooks:
afterBulkUpdate: (user, options) ->
console.log "Do something with the actual data here"
我的 User.Update 定义:
update: (user) ->
new Promise (resolve, reject) ->
User.update(
user
where:
name: user.name
)
.then (res) ->
resolve res
.catch (err) ->
reject err
【问题讨论】:
标签: sql-server node.js sequelize.js