javascript - 错误 [ERR_HTTP_HEADERS_SENT]:在将标头发送到客户端后无法设置标头(多个数据条目)
问题描述
所以我试图插入然后更新数据,数据库已根据预期的查询成功更新,并且能够接收到客户端的响应,但在服务器上收到上述错误,不知道如何调试它,我试过看看前面的相关问题,没有运气。
var urlencodedParser = bodyParser.urlencoded({ extended: false });
router.post('/createprovision', urlencodedParser,(req, res) => {
let serials = [];
for (let i = 0; i < req.body.length; i++){
serials.push(req.body[i][1]);
}
let sql = 'INSERT INTO provision (employee_id, serial_no, provision_date) VALUES ?';
connection.query(sql, [req.body],(err, results) => {
for(let i = 0; i < serials.length; i++){
let sql2 = `UPDATE inventory SET ? WHERE serial_no = '${serials[i]}'`;
connection.query(sql2, [{status: "assigned"}],(err, results) => {
if (err) throw err;
return res.send("provision success!");
});
}
});
});
ERR_MSG:
错误 [ERR_HTTP_HEADERS_SENT]:在将标头发送到客户端后无法设置标头(多个数据条目)
解决方案
您已将您return res.send("provision success!");
放入一个 for 循环中,这意味着您在第一次迭代中向客户端发送响应,然后您尝试再次发送响应,但标头已发送。将其放在函数的末尾,仅在 process all 之后发送响应serials
。
推荐阅读
- node.js - 如何配置 PM2 以根据系统的环境变量启动某些应用程序?
- python - Django 仅在 Apple Safari 浏览器上将模板中的所有 Webp 图像转换为 Png/Jpg
- tensorflow - 多输出单损失模型
- selenium - 为什么我在 Visual Studio 中的 selenium xunit 测试并行运行?
- c++ - 我应该如何实现现有父对象的临时子对象?
- sql-server - OPTIMIZE_FOR_SEQUENTIAL_KEY 打破 VS2019 数据库项目构建
- laravel - Laravel - 如何动态实现我的 API
- python - 检查值按行计数,它小于另一个列值
- github - 如何让 GitHub 返回实际文件(未显示在 Git 查看器中)?
- npm - 尝试 npm install material-ui 时出现大量错误