javascript - 使用 'findOne' 或 'findAll' 后 Sequelize 不会更新

标签 javascript node.js transactions sequelize.js

我在尝试从 dB 更新找到的行时遇到了这个问题。
我为此 v5 使用了 sequelize。
问题是在找到我想要的行后,我使用了很多语法,但没有一个起作用。
我试过 instance.update({thing: value})、instance.save({thing: value})、model.update 等。它不会返回任何类型的错误或警告,但不会更新任何内容。

const t = await sequelize.transaction();
try{
    const foundUser = await User.User.findOne({
        where: {
            userName: req.body.userName,
            password: req.body.password
        }
    }, {transaction: t });
    await userFunction.validateLogin(foundUser);
    foundUser.tooken = '10:10:10';
    await foundUser.save();
    await t.commit();
这里只是返回找到的行,它不会更新任何内容。
这是返回的内容:
Executing (60652c1d-4e58-449e-bde1-3ae7512651ac): START TRANSACTION;
Executing (default): SELECT "id", "firstName", "lastName", "userName", "password", "email", "birthDay", "createdAt", "updatedAt" FROM "users" AS "user" WHERE "user"."userName" = 'dudu3000' AND "user"."password" = 'admin' LIMIT 1 FOR UPDATE;
Executing (60652c1d-4e58-449e-bde1-3ae7512651ac): COMMIT;

最佳答案

您可以在 .then 方法的 findOne 中调用 update 方法

SequlizeModel.findOne({
      where: {
            userName: req.body.userName,
            password: req.body.password
        }
})
.then(record => {

  if (!record) {
    throw new Error('No record found')
  }

  console.log(`retrieved record ${JSON.stringify(record,null,2)}`) 

  record.update(values).then( updatedRecord => {
    console.log(`updated record ${JSON.stringify(updatedRecord,null,2)}`)
    // login into your DB and confirm update
  })

})
.catch((error) => {
  // do seomthing with the error
  throw new Error(error)
})

关于javascript - 使用 'findOne' 或 'findAll' 后 Sequelize 不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62752367/

相关文章:

javascript - 数据表简要显示页面加载和刷新时删除的行

javascript - 简单的图像标记页面,如 facebook 图像标记

node.js - npm 无法从 registry.npmjs.org 安装

.net - 单个事务下具有相同连接字符串的多个连接,提升事务?

sql - 如何判断在 Oracle 事务中是否有未提交的工作?

javascript - 你能从它自己的 json 对象中调用数据吗?

javascript - 如何在 Javascript 中仅使用其引用来更改对象

javascript - 当http请求发送时,如何在react js中显示错误消息?

node.js - express 服务器在 5 个 POST 后没有响应

mysql - 如何将自增id传递到另一个表中