nodejs连接mysql数据库时遇到一个问题,就是第一次连接时,数据正常接收到,但是当刷新页面重定向时报错,并且node服务会断开,如图
错误代码如下:
经过上网查找之后,发现res.send() 中包含res.end() 方法,调用一次之后,数据正常返回,但同时执行了res.end(),再一次调用此接口,就会报Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
解决办法
将res.send(); 注释掉即可。
但之后又会报一个错误,如图
报错Error: Cannot enqueue Quit after invoking quit.
我用的是mysql模块,因为频繁调用connection.end(); 导致出现这种报错,所以最终代码如下
//查询学校列表
router.get('/school', function(req, res, next) {
connection.query("select * from school",function (err, result) {
if(err){
// res.send(err.message);
res.json({
status:"1",
msg:err.message
});
return;
}else{
// res.send(result);
res.json({
status:"0",
msg:result
});
}
});
// connection.end();
// res.send('respond with a resource');
});