首页 > 解决方案 > 如何解决 Sequelize 更新问题?

问题描述

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

User.update({
  ResetPasswordToken : resetPasswordToken
},{
  where: {
      UserName: 'testuser'
  }
})

续集日志:

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

标签: javascriptmysqlnode.jsexpresssequelize.js

解决方案


根据 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!

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


    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']});
    }


推荐阅读