在不影响性能的情况下批量更新nodejs

时间:2018-09-30 12:51:49

标签: node.js sequelize.js

我有一个将MySQL作为数据库的节点应用程序。我正在创建一个端点,该端点将用不同的数据更新多行。另外,我使用sequelize作为ORM。

现在我知道我可以像这样更新行

model.update(data).then(()=>{res.end('Row Updated')});

现在我的问题是我应该在哪里调用第二个模型的更新方法。即在传递给then()的cb函数中或在update.model方法之后

我的意思是以下哪种做法是最佳做法。

models1.update(data1).then(()=>{console.log('Row 1 Updated')});
model2.update(data2).then(()=>{console.log('Row 2 Updated')});

                      **OR**

model1.update(data1).then(()=>{
    model2.update(data2).then(()=>{console.log('All the rows have been updated')})
});

1 个答案:

答案 0 :(得分:3)

以上两个都不正确,因为承诺未正确链接。这阻碍了正确的控制流程和错误处理。

如果查询是独立的,则可以并行执行:

Promise.all([
  model1.update(data1),
  model2.update(data2)
])
.then(() => {
  console.log('All the rows have been updated');
});