使用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)应用于用户。如何添加以下代码来解决此问题?到目前为止,我仅看到一个解决方案,它提出了一个单独的请求来获取用户实例。

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条记录),并且由于以下原因而获得所有更新的记录将是非常令人惊讶,资源和时间的操作:操作。

您应该获得上面问题中假设的用户模型实例,并调用其updatesetRoles方法。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...