gpt4 book ai didi

express - 如何在Sequelize中更新一对多关系中的行?

转载 作者:行者123 更新时间:2023-12-03 22:43:56 25 4
gpt4 key购买 nike

我有一个用户表,它与一对多关系中的权限表相关(用户有很多权限),我想知道更新用户权限的干净和正确的方法。

这是我写的代码,但我觉得这不是正确的方法:

update(req, res) {
db.sequelize
.transaction()
.then(t => {
Group.findByPk(req.params.id).then(group => {
if (!group)
return res.status(404).send({
error: "Ce groupe n'éxiste pas"
});

GroupPrivilege.destroy({
where: { groupId: req.params.id },
transaction: t
}).then(resDestroy => {
req.body.group_privileges.forEach(element => {
element.groupId = req.params.id;
});

GroupPrivilege.bulkCreate(req.body.group_privileges, {
transaction: t
}).then(resCreatePrivileges => {
delete req.body.group_privileges;
console.log(req.body);
Group.update(req.body, {
where: { id: req.params.id },
transaction: t
}).then(resSave => {
t.commit();
return res.status(200).send("");
});
});
});
});
})
.catch(err => {
t.rollback();
return res.status(400).send(err);
});
}

最佳答案

这是我写的代码,但我觉得这不是正确的方法:

 update(req, res) {
db.sequelize
.transaction()
.then(t => {
Group.findByPk(req.params.id).then(group => {
if (!group)
return res.status(404).send({
error: "Ce groupe n'éxiste pas"
});

GroupPrivilege.destroy({
where: { groupId: req.params.id },
transaction: t
}).then(resDestroy => {
req.body.group_privileges.forEach(element => {
element.groupId = req.params.id;
});
GroupPrivilege.bulkCreate(req.body.group_privileges, {
transaction: t
}).then(resCreatePrivileges => {
delete req.body.group_privileges;
console.log(req.body);
Group.update(req.body, {
where: { id: req.params.id },
transaction: t
}).then(resSave => {
t.commit();
return res.status(200).send("");
});
});
});
});
})
.catch(err => {
t.rollback();
return res.status(400).send(err);
});
}

关于express - 如何在Sequelize中更新一对多关系中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59733445/

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