gpt4 book ai didi

node.js - Sequelize 事务阻止更新行

转载 作者:行者123 更新时间:2023-12-03 22:16:47 32 4
gpt4 key购买 nike

当我在更新查询中使用事务时,它会阻止更新行。这是我所做的:

let t = await sequelize.transaction();
let updated = User.update({
lastName: 'new lastname',
firstName: 'new firstname'
},
{
where: { email:'zzz@yyy.com' },
// doesn't update with transaction
// transaction: t
})
.then(success(res))
顺便说一句,它更新 updatedAt列在数据库中,但其他字段仍然相同。任何的想法?
更新:当我在其他函数中运行一些查询并将 t(事务)传递给函数时,就会发生这种情况。

最佳答案

像这样尝试我认为这会在这里工作我正在使用 async await不是基于 promise 的方法。我使用的交易是 Managed transactions如果您想在您的应用程序中使用交易,最好使用哪个

updateUser: async (req, res) => {
sequelize.sequelize.transaction(async (t1) => {

let data = await User.findOne({
where: {
id: req.body.id
}
});
if (data) {
await User.update(req.body, { where: { id: req.body.id } });
return res.status(200).send(error.OK);
}
else {
return res.status(422).send(error.DATA_NOT_FOUND);
}
}).catch(function (err) {
console.log(err)
return res.status(500).send(error.SERVER_ERROR);
});
}

关于node.js - Sequelize 事务阻止更新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64771551/

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