network => header 里面显示如下错误:
错误意思是:临时标题显示 :
Error: Can't set headers after they are sent.
at validateHeader (_http_outgoing.js:494:11)
at ServerResponse.setHeader (_http_outgoing.js:501:3)
at ServerResponse.header (f:VSCode
ode
ode06myapp-login
ode_modulesexpresslib
esponse.js:767:10)
at ServerResponse.json (f:VSCode
ode
ode06myapp-login
ode_modulesexpresslib
esponse.js:264:10)
at ServerResponse.send (f:VSCode
ode
ode06myapp-login
ode_modulesexpresslib
esponse.js:158:21)
at movie.find.toArray (f:VSCode
ode
ode06myapp-login
outesmain.js:29:14) at result (f:VSCode
ode
ode06myapp-login
ode_modulesmongodblibutils.js:414:17)
at executeCallback (f:VSCode
ode
ode06myapp-login
ode_modulesmongodblibutils.js:406:9)
at handleCallback (f:VSCode
ode
ode06myapp-login
ode_modulesmongodblibutils.js:128:55)
at self.close (f:VSCode
ode
ode06myapp-login
ode_modulesmongodblibcursor.js:957:60)
“Can’t set headers after they are sent.” => “不能发送headers因为已经发送过一次了” => 在处理HTTP请求时,服务器会先输出响应头,然后再输出主体内容,而一旦输出过一次响应头(比如执行过 res.writeHead()
或 res.write()
或 res.end()
),你再尝试通过 res.setHeader()
或 res.writeHead()
来设置响应头时(有些方法比如 res.redirect()
会调用 res.writeHead()
),就会报这个错误。
(说明:express中的 res.header()
相当于 res.writeHead()
,res.send()
相当于 res.write()
)
//程序重复响应,res.send 重复发送数据而导致的
发送后不能设置标头,一般是后台出了问题,(查看异步线程的程序,是否应该改为主线程优先执行一下)
return new Promise((resolve,rejected)function{
异步函数
})