gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 22:34:33 24 4
gpt4 key购买 nike

我在尝试从 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com