Javascript 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

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

在每个模式中,我使用以下Sequelize钩子将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设置为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?不幸的是,我现在能想到的唯一解决方案是手动编写软删除代码…这有点难看。是的。我也在想同样的事情。也许做一个原始查询,但它很难看(