JSON – 发送后无法发送标题
有时,当我运行这个代码时,我得到以下错误。
Error: Can't set headers after they are sent.
为什么会发生? 我如何解决它?
User.findOne({username: username}, function(err, user) { if (err) { console.log(err); res.json({ success: false, message: "Unknown error." }); } if (user != undefined) { res.json({ success: true, message: "User exists." }); } else { res.json({ success: true, message: "User does not exist." }); } });
即使发生mongoose错误,您的代码也会继续运行,导致您的应用程序尝试对请求做出两次响应。 在json响应之后添加一个返回值。 像这样:
if (err) { console.log(err); res.json({ success: false, message: "Unknown error." }); return; }
有时,数据库在出现错误时会响应两次。 要结束响应,只需返回;
if (error) { console.log(error); response.json({ success: false, message: "An error occurred." }); return; }
如果第一个条件成立,那么应用程序不会去任何其他条件发送响应
else if (user != undefined) {