问题描述
有些用户和角色表在user_roles中链接。用户可以具有许多角色。在创建时,我使用setRoles(数组)填充关联的user_roles表。
User.create(user_data)
.then(user => {
user.setRoles([1]).then(() => {
console.log( "OK" );
});
})
.catch(err => {
console.log( err.message );
});
更新用户时出现问题,因为没有user
的返回实例可以将setRoles(array)
应用于用户。如何添加以下代码来解决此问题?到目前为止,我仅看到一个解决方案,它提出了一个单独的请求来获取用户实例。
PS:Sequelize文档说.update
可以返回一个对象作为第二个参数,但是它仅适用于postgres,因此不适合。
User.update(user_data,{ where: { id: user_id } })
.then(num => {
console.log( "OK" );
})
.catch(err => {
console.log( err.message );
});
};
解决方法
如果您使用静态模型update
方法,则意味着您可以更新几条记录(假设有100000条记录),并且由于以下原因而获得所有更新的记录将是非常令人惊讶,资源和时间的操作:操作。
您应该获得上面问题中假设的用户模型实例,并调用其update
和setRoles
方法。