所以我尝试插入然后更新数据,数据库已根据预期的查询成功更新,并且能够接收到客户端的响应,但在服务器上收到了上面的错误,不确定如何调试,我我尝试过运气,没有碰到以前的相关问题。
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]:发送标头后无法设置标头 到客户端(多个数据条目)
答案 0 :(得分:1)
您已将return res.send("provision success!");
放入for循环中,这意味着您在第一次迭代中向客户端发送了响应,然后您尝试再次发送响应,但标头已发送。将其放置在函数的末尾,仅在处理所有serials
之后发送响应。