Can't set headers after they are sent

来源:10-1 登录功能实现

JOJO不秃

2019-03-02

老师我想问一下,为什么下面这样的代码,会在服务器中报
Can’t set headers after they are sent
的错误,而且服务器会自己关掉。

//这段代码会报错
res.json({
	msg:'success' ,
	result:doc
})
res.cookie("userId",doc[0].userId,{
	path:'/',
	maxAge:1000*60*60
});

但是如果我把res.cookie()放在res.json()前面的话就不会出现这种问题。
为什么呢?

//这样反而不会
res.cookie("userId",doc[0].userId,{
	path:'/',
	maxAge:1000*60*60
});
res.json({
	msg:'success' ,
	result:doc
})
写回答

1回答

河畔一角

2019-03-02

因为res.json是最终的结果输出,可以理解为return,那后面的代码全部不会执行。

0
1
JOJO不秃
谢谢老师,但我还有个疑问。就是如果只有res.json(),而没有res.cookie()的话,应该也是可以运行的吧,那既然后面这个res.cookie()都不执行了,为什么还会报错呢?
2019-03-02
共1条回复

Vue2.6+Node.js+MongoDB 全栈打造商城系统

课程全面升级,Vue2.6+Koa2,从前端入门全栈,让你的未来更宽广

2634 学习 · 924 问题

查看课程