请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

login 报出这个错误Error: Can't set headers after they are sent.

代码基本都用老师的代码了
登录成功 报出这个错误Error: Can’t set headers after they are sent.
如果登录失败显示正常
如果store: sessionStore注释掉登录功能都正常了
不知道问题出在哪里?
错误信息如下

Error: Can't set headers after they are sent.
    at validateHeader (_http_outgoing.js:491:11)
    at ServerResponse.setHeader (_http_outgoing.js:498:3)
    at ServerResponse.header (C:\Users\Administrator\Desktop\all_files\blog-express\node_modules\express\lib\response.js:767:10)
    at ServerResponse.send (C:\Users\Administrator\Desktop\all_files\blog-express\node_modules\express\lib\response.js:170:12)
    at done (C:\Users\Administrator\Desktop\all_files\blog-express\node_modules\express\lib\response.js:1004:10)
    at Object.exports.renderFile (C:\Users\Administrator\Desktop\all_files\blog-express\node_modules\jade\lib\index.js:374:12)
    at View.exports.__express [as engine] (C:\Users\Administrator\Desktop\all_files\blog-express\node_modules\jade\lib\index.js:417:11)
    at View.render (C:\Users\Administrator\Desktop\all_files\blog-express\node_modules\express\lib\view.js:135:8)
    at tryRender (C:\Users\Administrator\Desktop\all_files\blog-express\node_modules\express\lib\application.js:640:10)
    at Function.render (C:\Users\Administrator\Desktop\all_files\blog-express\node_modules\express\lib\application.js:592:3)
Error: Can't set headers after they are sent.
    at validateHeader (_http_outgoing.js:491:11)
    at ServerResponse.setHeader (_http_outgoing.js:498:3)
    at ServerResponse.header (C:\Users\Administrator\Desktop\all_files\blog-express\node_modules\express\lib\response.js:767:10)
    at ServerResponse.contentType (C:\Users\Administrator\Desktop\all_files\blog-express\node_modules\express\lib\response.js:595:15)
    at ServerResponse.send (C:\Users\Administrator\Desktop\all_files\blog-express\node_modules\express\lib\response.js:145:14)
    at done (C:\Users\Administrator\Desktop\all_files\blog-express\node_modules\express\lib\response.js:1004:10)
    at Object.exports.renderFile (C:\Users\Administrator\Desktop\all_files\blog-express\node_modules\jade\lib\index.js:374:12)
    at View.exports.__express [as engine] (C:\Users\Administrator\Desktop\all_files\blog-express\node_modules\jade\lib\index.js:417:11)
    at View.render (C:\Users\Administrator\Desktop\all_files\blog-express\node_modules\express\lib\view.js:135:8)
    at tryRender (C:\Users\Administrator\Desktop\all_files\blog-express\node_modules\express\lib\application.js:640:10)

正在回答 回答被采纳积分+3

2回答

慕斯0315010 2019-10-25 15:26:05

给后面来的同学提醒一下,出现这个问题的原因。

一个请求,收到两个响应,注意看你们的代码块里是不是有两次 res.json

1 回复 有任何疑惑可以回复我~
双越 2019-05-14 08:33:01

 Can’t set headers after they are sent ,意思就是在 res.end 之后,又去设置 header 的值,你去找一下是否有这个错误。重点注意看看,是不是哪里忘了写 return ?

0 回复 有任何疑惑可以回复我~
  • 提问者 iceps #1
    老师
           我查了前面代码没发现问题,用您的代码换上我自己的数据库信息,也出现这个问题,把app.js最后的res.render('error');注释掉这个报错就没了
           但是登录还是会在页面alert出"数据错误",后台没有报错,只有把store: sessionStore注释掉才一切正常,用您的代码情况也是一样的,我想是不是redis相关的问题?
    回复 有任何疑惑可以回复我~ 2019-05-14 13:03:12
  • 双越 回复 提问者 iceps #2
    alert 数据错误,后台肯定哪里出错了,你得一行一行 debug 代码去查。
    回复 有任何疑惑可以回复我~ 2019-05-14 19:30:43
  • qq_方物_0 回复 提问者 iceps #3
    你好,我本来没有这个问题,在强行关掉redis后,出现了这个问题,然后在redis里面,用这行命令,config set stop-writes-on-bgsave-error no,最后解决了,看你注释了redis的东西好了,也许我们是一个问题。
    回复 有任何疑惑可以回复我~ 2022-01-15 20:36:35
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号