使用 Sequelize 和 Express 更新链接 table
Updating a linked table with Sequelize and Express
有 table 个用户和角色,链接在 user_roles 中。一个用户可以有多个角色。在创建的时候,我使用setRoles(array)来填充关联的user_roles table.
User.create(user_data)
.then(user => {
user.setRoles([1]).then(() => {
console.log( "OK" );
});
})
.catch(err => {
console.log( err.message );
});
问题出现在更新用户时,因为没有 user
的 return 实例来应用 setRoles(array)
。如何添加以下代码来解决此问题?到目前为止,我只看到一种解决方案,即发出单独的请求以获取用户的实例。
PS:Sequelize 文档说 .update
可以 return 一个对象作为第二个参数,但它只适用于 postgres,因此不是 suitable .
User.update(user_data, { where: { id: user_id } })
.then(num => {
console.log( "OK" );
})
.catch(err => {
console.log( err.message );
});
};
如果您使用静态模型 update
方法,这意味着您可以更新多条记录(假设有 100000 条记录),将所有更新的记录作为运算结果。
您应该获得一个用户模型的实例,正如您在上述问题中假设的那样,并调用它的 update
和 setRoles
方法。
有 table 个用户和角色,链接在 user_roles 中。一个用户可以有多个角色。在创建的时候,我使用setRoles(array)来填充关联的user_roles table.
User.create(user_data)
.then(user => {
user.setRoles([1]).then(() => {
console.log( "OK" );
});
})
.catch(err => {
console.log( err.message );
});
问题出现在更新用户时,因为没有 user
的 return 实例来应用 setRoles(array)
。如何添加以下代码来解决此问题?到目前为止,我只看到一种解决方案,即发出单独的请求以获取用户的实例。
PS:Sequelize 文档说 .update
可以 return 一个对象作为第二个参数,但它只适用于 postgres,因此不是 suitable .
User.update(user_data, { where: { id: user_id } })
.then(num => {
console.log( "OK" );
})
.catch(err => {
console.log( err.message );
});
};
如果您使用静态模型 update
方法,这意味着您可以更新多条记录(假设有 100000 条记录),将所有更新的记录作为运算结果。
您应该获得一个用户模型的实例,正如您在上述问题中假设的那样,并调用它的 update
和 setRoles
方法。