首页 > 解决方案 > node js [ERR_HTTP_HEADERS_SENT]:发送到客户端后无法设置标头

问题描述

我只是写了两个类似的代码,但是只有材料可以运行,并且当我提交表单时,订单有错误“[ERR_HTTP_HEADERS_SENT]:无法设置标题后发送到客户端”

order.js

pool.getConnection(function(err,connection){
            connection.query('SELECT customerid FROM order_table WHERE customerid =?', [customerid],function(err,rows){
                if(err){
                    res.render('error',{
                        message:err.message,
                        error:err
                    });
                }
         /*
            if(rows.length>=1){
                res.render('operation/order',{warn:"You have already order!"});  

            }else{
                */   
                    var cmd="INSERT INTO order_table(customerid,customerName,phonenumber,productid,amount,orderday,deadlineday) VALUES(?,?,?,?,?,?,?)";
                        connection.query(cmd,[customerid,customerName,phonenumber,productid,amount,orderday,deadlineday],function(err,result){
                            console.log(req.body);
                            if(err){
                                res.redirect('/order');
                            //return next();
                            }else{
                                res.render('operation/order_redirect');
                            }
                    });
            //}
            });

        });
    //callback(err, result);
    connection.release();
});

module.exports=router;  

标签: node.js

解决方案


当您尝试发送响应时出现错误,尽管它已经发送。

如我所见,出现错误时您尚未返回状态。所以使用return返回状态,以便下面的代码不执行。

if(err){
   return res.render('error',{
         message:err.message,
         error:err
    });
}

为什么会出现此错误:


错误“错误:发送后无法设置标头。” 表示您已经处于 Body 或 Finished 状态,但某些函数试图设置 header 或 statusCode。(查找更多



推荐阅读