使用Sequelize和Express更新链接表



有用户和角色表,它们在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)应用于它。如何添加以下代码来解决此问题?到目前为止,我只看到一个解决方案,即单独请求获取用户的实例。

附言:Sequelize文档说.update可以返回一个对象作为第二个参数,但它只适用于postgres,因此不合适。


User.update(user_data, { where: { id: user_id } })
.then(num => {
console.log( "OK" );
})
.catch(err => {
console.log( err.message );
});
};

如果您使用静态模型update方法,这意味着您可以更新多个记录(假设100000个记录(,并且由于操作而获得所有更新的记录将是一个非常令人惊讶、耗费资源和时间的操作。

您应该获得一个用户模型的实例,正如您在上面的问题中假设的那样,并调用其updatesetRoles方法。

最新更新