Javascript createdAt、updatedAt&;中的unix时间戳;删除数据字段
我在ExpressJS应用程序中使用SequalizeJS ORM与MariaDB通信。我正在使用现有的数据库方案,所以无法更改字段的数据类型。现有数据库在createdAt、updatedAt和deletedAt字段中使用unix时间戳。现在,对于新的ExpressJS应用程序,我也需要遵循这一点 在每个模式中,我使用以下Sequelize钩子将createdAt&updatedAt字段转换为unix时间戳Javascript createdAt、updatedAt&;中的unix时间戳;删除数据字段,javascript,node.js,express,sequelize.js,Javascript,Node.js,Express,Sequelize.js,我在ExpressJS应用程序中使用SequalizeJS ORM与MariaDB通信。我正在使用现有的数据库方案,所以无法更改字段的数据类型。现有数据库在createdAt、updatedAt和deletedAt字段中使用unix时间戳。现在,对于新的ExpressJS应用程序,我也需要遵循这一点 在每个模式中,我使用以下Sequelize钩子将createdAt&updatedAt字段转换为unix时间戳 hooks: { beforeCreate: (instance, optio
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设置为BeforeBulkDestroyHook上的时间戳。谁能帮我解决这个问题
谢谢 需要尝试一件事-individualHooks选项为每个实例调用beforeDestroy()钩子。这可以应用于查询级别:
db.myFunkyModel.destroy({
where: {
'field' : { [Op.like]: '%someValue%' }
},
individualHooks : true
});
或者在更广泛的层面上:
const sequelizeDb = new Sequelize(
...
{
host: '127.0.0.1',
....
define: {
....
individualHooks : true
}
....
});
查看的Model Hooks部分,了解单个钩子的潜在性能影响 需要尝试一件事-individualHooks选项为每个实例调用beforeDestroy()钩子。这可以应用于查询级别:
db.myFunkyModel.destroy({
where: {
'field' : { [Op.like]: '%someValue%' }
},
individualHooks : true
});
或者在更广泛的层面上:
const sequelizeDb = new Sequelize(
...
{
host: '127.0.0.1',
....
define: {
....
individualHooks : true
}
....
});
查看的Model Hooks部分,了解单个钩子的潜在性能影响 beforeBulkDestroy()有什么问题?是否有错误消息,或者它只是没有按预期工作?beforeBulkDestroy()仅接受选项,无法修改实例。。还是我错过了什么?before()有什么问题?是否有错误消息,或者它只是没有按预期工作?beforeBulkDestroy()仅接受选项,无法修改实例。。或者我错过了什么?我尝试使用IndividualHook,但没有解决问题。仍然无法处理deletedAt字段上的unix时间戳。奇怪-我的测试工作正常。你的个人钩子被执行了吗?您可以使用下面的日志消息进行测试<代码>挂钩:{beforeDestroy:(实例,选项)=>{console.log('***beforeDestroy***',instance.dataValues);instance.dataValues.deletedAt=Math.floor(Date.now()/1000);},…请检查以下屏幕截图好吗?它给了我与过去相同的错误。似乎deletedAt日期是由Sequelize设置的,而不是从您的钩子设置的。这似乎很奇怪,因为您能够钩住它进行创建和更新。可能带有
时间戳的软删除:true,paranoid:true,
无法be hooked?不幸的是,我现在能想到的唯一解决方案是手动编写软删除代码…这有点难看。是的。我也在想同样的事情。也许做一个原始查询,但它很难看(我尝试使用individualHooks,但没有解决问题。仍然无法处理deletedAt字段上的unix时间戳。奇怪-我的测试工作正常。是否正在执行您的单个钩子?您可以使用以下日志消息进行测试。钩子:{beforeDestroy:(实例,选项)=>{console.log(“***beforeDestroy***”,instance.dataValues);instance.dataValues.deletedAt=Math.floor(Date.now()/1000);},…
请检查以下屏幕截图好吗?它给了我与过去相同的错误。似乎deletedAt日期是由Sequelize设置的,而不是从您的钩子设置的。这似乎很奇怪,因为您能够钩住它进行创建和更新。可能带有时间戳的软删除:true,paranoid:true,
无法be hooked?不幸的是,我现在能想到的唯一解决方案是手动编写软删除代码…这有点难看。是的。我也在想同样的事情。也许做一个原始查询,但它很难看(