一、问题说明
在请求时 ,出现这种问题,一定是因为,浏览器请求一次之后,服务器却返回两次及两次以上的响应。
这种容易发生在异步回调中:
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 }); });