繁体   English   中英

Sequelize 上级联删除运行功能?

[英]Sequelize on cascade delete run a function?

我有 2 个模型 MenuItems 和 Category,从类别到菜单项具有 1-n 关系。 此外,无论何时创建 MenuItem,都会在服务器上保存一个 .jpg 文件(文件名由服务器生成,因此无需将其保存为数据库中的列)。 我有

{
    onDelete: "cascade"
}

在 Category 关联中设置,因为如果删除了一个类别,那么所有菜单项都应该随之而来。 但是,这留下了一堆未使用的 .jpg 文件。 发生级联删除时有没有办法删除它们?

您可以为 MenuItems 模型添加 beforeDestroy 钩子,如下所示:

// in menuItemsModel.js
MenuItems.beforeDestroy((instance, options) => {
  console.log('MenuItems before destroy hook is triggered')
  const imageFileDestination = instance.getDataValue('imageUrlFieldName')
  // put your logic to delete .jpg files with destination
  fs.unlink(url)
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM