如何解决 Sequelize 更新问题?

Gök*_*yen 3 javascript mysql node.js express sequelize.js

我使用 MySQL ORM。但更新方法不起作用。

User.update({
  ResetPasswordToken : resetPasswordToken
},{
  where: {
      UserName: 'testuser'
  }
})
Run Code Online (Sandbox Code Playgroud)

续集日志:

执行(默认):UPDATE UsersSET ResetPasswordToken=?, updatedAt=? 哪里UserName=?

noo*_*erd 7

根据Sequelize的官方文档,save方法用于更新实例。请查看页面了解更多详情。

这在文档中已经提到过:

如果更改实例的某些字段的值,再次调用 save 将相应更新它:


    const jane = await User.create({ name: "Jane" });
    console.log(jane.name); // "Jane"
    jane.name = "Ada";
    // the name is still "Jane" in the database
    await jane.save();
    // Now the name was updated to "Ada" in the database!
Run Code Online (Sandbox Code Playgroud)

同样,您的代码可以写为:


    const foo = async (resetPasswordToken) => {
       //Finding current instance of the user
       const currentUser = await User.findOne({
          where:{
            UserName: 'testuser'
          }
       });
       //modifying the related field
       currentUser.ResetPasswordToken = resetPasswordToken;
       //saving the changes
       currentUser.save({fields: ['ResetPasswordToken']});
    }

Run Code Online (Sandbox Code Playgroud)