在设置cookie后刷新页面node报错
来源:6-12 登录注册-cookie保存登录状态

_孤屿孤行
2018-05-21
登录成功存入cookie后,刷新页面报以下错误:
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 (D:\yimai\node_modules\_express@4.16.3@express\lib\response.js:767:10)
at ServerResponse.json (D:\yimai\node_modules\_express@4.16.3@express\lib\response.js:264:10)
at D:\yimai\server\user.js:49:18
at D:\yimai\node_modules\_mongoose@5.0.17@mongoose\lib\model.js:3954:16
at process.nextTick (D:\yimai\node_modules\_mongoose@5.0.17@mongoose\lib\query.js:2022:28)
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickCallback (internal/process/next_tick.js:180:9)
以下是代码片段:
Router.get("/info", function(req, res) {
const { userid } = req.cookies;
if (!userid) {
return res.json({ code: 1 });
}
User.findOne({ _id: userid }, _filter, function(err, doc) {
if (err) {
return res.json({ code: 1, msg: "后台出现错误!" });
}
if (doc) {
return res.json({ code: 0, data: doc });
}
});
// 用户有没有cookie
return res.json({
code: 1
});
});
求解。
1回答
-
这个代码有一种情况,就是你的User.findOne会返回一个相应,但是下面还会有一个相应 所以会触发两次res.json导致的 一个请求应该确保只有一次相应,你把没有cookie哪个判断,放到最前面吧 用if判断下
012018-05-22
Redux+React Router+Node.js全栈开发
1822 学习 · 750 问题
相似问题