NodeJS 更新sequelize中findOne返回的对象的正确方法

11dmarpk  于 2022-11-29  发布在  Node.js
关注(0)|答案(1)|浏览(218)

Node和sequelize的新手。正在寻找一种方法来在对象被访问时更新某些字段(甚至只更新updatedAt时间戳)。

//query is just for demo purposes - assume email is unique 
let existingEmployee = await employee.findOne(
  {
    where: { email: email} 
  }
);

我只需要更新某个字段,例如名称

empObj = {//fields here}
existingEmployee.update(empObj)

似乎没有做任何事情。它不会更改updatedAt时间戳。似乎只有新创建的对象才添加它。
如果我只需要更新updatedAt字段(时间戳),该怎么办?
该模型确实具有

defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'),

我们的要求是跟踪提交到数据库的情况,即使其他字段有完全相同的数据。

jtjikinw

jtjikinw1#

您需要使用existingEmployee.update({ updatedAt: new Date()})来更新记录而不更改任何字段。
如果没有要更新的道具,则Sequelize不执行任何操作。

相关问题