【发布时间】:2018-01-16 01:04:43
【问题描述】:
我有一组要传递给 API 端点的项目(使用 Sequelize 作为我的 ORM)。我正在尝试遍历每个项目并对其进行更新,但是我得到了Unhandled rejection Error: Can't set headers after they are sent.
stepsController.put = (req, res) => {
const { steps } = req.body;
// Steps is an array of objects that I want to update...
steps.map(step => {
Step.findOne({ where: { id: step.id } })
.then(savedStep =>
savedStep
.update({
order: step.order,
})
.then(success => res.status(200).send(success))
.catch(error => res.send(error))
)
.then(ok => res.status(200).send(ok))
.catch(err => res.send(err));
});
};
我相信这是因为它正在发送每个项目的响应。 Sequelize 的update 方法是一个承诺。如何迭代所有项目并确保在发送单个成功响应之前更新所有项目?
【问题讨论】:
标签: express sequelize.js