gpt4 book ai didi

javascript - UNIX 时间戳在createdAt、updatedAt 和deletedAt 字段中

转载 作者:太空宇宙 更新时间:2023-11-04 01:28:52 33 4
gpt4 key购买 nike

我在 ExpressJS 应用程序中使用 SequlizeJS ORM 与 MariaDB 进行通信。我正在使用现有的数据库方案,因此无法更改字段的数据类型。现有数据库在createdAt、updatedAt 和deletedAt 字段中使用unix 时间戳。现在我也需要在新的 ExpressJS 应用程序中遵循这一点。

在每个模式中,我使用以下 Sequelize Hook 将createdAt 和updatedAt 字段转换为unix 时间戳。

hooks: {
beforeCreate: (instance, options) => {
instance.dataValues.createdAt = Math.floor(Date.now() / 1000);
instance.dataValues.updatedAt = Math.floor(Date.now() / 1000);
},
beforeUpdate: (instance, options) => {
instance.dataValues.updatedAt = Math.floor(Date.now() / 1000);
}
}

但问题是我无法将deletedAt设置为beforeBulkDestroy钩子(Hook)上的时间戳。谁能帮我解决这个问题吗?

谢谢!

最佳答案

要尝试一件事 - individualHooks 选项为每个实例调用 beforeDestroy() Hook 。这可以应用于查询级别:

 db.myFunkyModel.destroy({
where: {
'field' : { [Op.like]: '%someValue%' }
},
individualHooks : true
});

或更广泛的层面:

 const sequelizeDb = new Sequelize(
...
{
host: '127.0.0.1',
....
define: {
....
individualHooks : true
}
....
});

查看 the manual 的模型 Hook 部分了解 individualHooks 的潜在性能影响。

关于javascript - UNIX 时间戳在createdAt、updatedAt 和deletedAt 字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56673345/

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