node.js - Sequelize : Update a column value on Model. 销毁()

标签 node.js sequelize.js

我有一个用 paranoid: true 用 Sequelize 编写的模型,这意味着在 Model.destroy() 上,deletedAt 列将设置了日期时间值。

但是,当调用 Model.destroy() 时,我希望将自定义列 is_archived 值设置为 1 而无需进行第二次 Model.update ()删除后查询
我尝试在 before/afterDestroy Hook 内设置 instance.is_archived = 1,但它们似乎不起作用。

有什么建议吗:)?

最佳答案

由于这里没有答案,所以我发布了这个。 Sequelize 不支持更新 beforeDestroyafterDestroy Hook 内的属性。最好的方法是在钩子(Hook)内调用 save()update():

afterDestroy(instance) {
  instance.is_archived = 1;
  await instance.save({ paranoid: false, hooks: false });
}

最好在 afterDestroy 内执行此操作,因为删除已经发生。在 beforeDestroy 中,实例有可能不会被删除。

参见https://github.com/sequelize/sequelize/issues/9318 .

关于node.js - Sequelize : Update a column value on Model. 销毁(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40826130/

相关文章:

node.js - 响应日期与 MongoDB 不同

javascript - 从匿名函数内部的函数返回

postgresql - Sequelize迁移添加 "IF NOT EXISTS"到addIndex和addColumn

sequelize.js - Sequelize findall 搜索

javascript - myDate.toLocaleString() 的格式不适合英语以外的任何其他语言

javascript - 使用 cli 混淆 js

Java Hmac-Sha1 hexdigest 与 Nodejs 不同

mysql - 使用 Sequelize 仅从行和关联中获取值

mysql - 如何在相关表中添加子行? (Sequelzie N :M Relationship)

sequelize.js - Sequelize -cli : running single seed file is slow