node.js - PUT 请求工作正常,数据库正在更新,但我收到“错误 [ERR_HTTP_HEADERS_SENT]”
问题描述
我有一个看起来像这样的 put 请求:
router.put('/employees', (req, res, next) => {
req.body.employees.forEach((employee) => {
Employee
.update(
{ _id: employee._id },
{ $set: { totalHours: 15 }
})
.exec(
(err, doc) => {
if (err) {
res.status(404).send(err);
}
else {
res.status(200).send(doc);
}
}
)
})
})
它应该将每个员工的 totalHours 属性更新为 15。它工作正常,除了在更新员工后我得到一个错误(错误 [ERR_HTTP_HEADERS_SENT]:在发送到客户端后无法设置标头)和节点崩溃。
解决方案
您只能响应一次请求。
在您的情况下,您收到一个请求,遍历多个员工,然后在循环内响应请求:即每个员工一次。
您需要完成循环然后响应一次。
推荐阅读
- python - 如何从值是列表的字典中制作字典列表?
- sql - View 中的多个子查询连接与 group by 返回重复的行
- python - 如何控制对 Python 中多个底层对象的异步访问?
- amazon-web-services - 了解 AWS Glue 详细的作业指标
- php - 无法使用 PHP 和 Stripe 支付网关验证表单
- ajax - 使用服务器端 true,数据表列搜索不起作用,但全局搜索有效
- javascript - 如何使用基于键名的 JS 从 PLIST 中获取数据?
- c# - 如何等到文件完全下载
- flutter - 从TextField切换到DropDownButton时,最后一个只出现片刻,又消失了
- node.js - Nodejs 加密模块不适用于打字稿