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

来源:10-9 session连接redis

iceps

2019-05-13

代码基本都用老师的代码了
登录成功 报出这个错误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)
写回答

2回答

慕斯0315010

2019-10-25

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

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

1
0

双越

2019-05-14

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

0
3
qq_方物_0
回复
iceps
你好,我本来没有这个问题,在强行关掉redis后,出现了这个问题,然后在redis里面,用这行命令,config set stop-writes-on-bgsave-error no,最后解决了,看你注释了redis的东西好了,也许我们是一个问题。
2022-01-15
共3条回复

Node.js+Express+Koa2+Nest.js 开发服务端

从入门到实战,一站式掌握 Node.js+Express+Koa2

4078 学习 · 2013 问题

查看课程