【问题标题】:Updating a linked table with Sequelize and Express使用 Sequelize 和 Express 更新链接表
【发布时间】:2020-12-11 09:28:44
【问题描述】:

有用户和角色表,它们在 user_roles 中链接。一个用户可以有很多角色。在创建时,我使用 setRoles(array) 来填充关联的 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 );
    });
};

【问题讨论】:

    标签: sql express sequelize.js


    【解决方案1】:

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

    你应该得到一个用户模型的实例,就像你在上面的问题中假设的那样,并调用它的 updatesetRoles 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-10
      • 1970-01-01
      • 2015-05-28
      • 2018-07-20
      • 1970-01-01
      • 2019-07-17
      • 2021-09-30
      • 2010-12-02
      相关资源
      最近更新 更多