错误[ERR_HTTP_HEADERS_SENT]:将标头发送到客户端后,无法设置标头(多个数据条目)

时间:2018-08-29 07:32:20

标签: javascript node.js server

所以我尝试插入然后更新数据,数据库已根据预期的查询成功更新,并且能够接收到客户端的响应,但在服务器上收到了上面的错误,不确定如何调试,我我尝试过运气,没有碰到以前的相关问题。

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]:发送标头后无法设置标头   到客户端(多个数据条目)

1 个答案:

答案 0 :(得分:1)

您已将return res.send("provision success!");放入for循环中,这意味着您在第一次迭代中向客户端发送了响应,然后您尝试再次发送响应,但标头已发送。将其放置在函数的末尾,仅在处理所有serials之后发送响应。