本文主要是介绍Node.js Error: Can't set headers after they are sent错误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
报错:Error: Can't set headers after they are sent,怎么解决?
使用response.end()发送响应时,在此前加一个return,即return response.end(),类似的response.send()等函数也要加return,而且是所有的地方都要加,即使是a请求的响应没加return,当b请求到来时,也会报错。
一、问题说明
在请求时 ,出现这种问题,一定是因为,浏览器请求一次之后,服务器却返回两次及两次以上的响应。
这种容易发生在异步回调中:
Movie.fetch(function (err,movies) {if(err) {res.redirect('/')} res.render('index',{title:'首页', movies:movies }); });如果fetch抛出错误,服务器返回重定向的响应,但是后面又再一次返回另一个响应。此时将出现:
Error: Can't set headers after they are sent
二、解决方案
在每次的请求处理中,一旦服务器返回响应,就即使的使用return,避免出现一次请求后,返回两次响应。
Movie.fetch(function (err,movies) {if(err) {return res.redirect('/')} res.render('index',{title:'首页', movies:movies }); });
这篇关于Node.js Error: Can't set headers after they are sent错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!