【发布时间】:2021-04-07 01:10:45
【问题描述】:
完整的概述和答案可以在第一个答案中找到: Error: Can't set headers after they are sent to the client
我正在使用:
- 快递
- 猫鼬(用于 MongoDB)
在注册新用户时,我想检查用户的电子邮件或姓名是否已经存在(因为它们必须是唯一的)。
我有这段代码:
try {
let user = await User.findOne({ email })
if (user) {
res
.status(400)
.json({ status: 'error', body: [{ msg: 'email already exist' }] })
}
user = await User.findOne({ name })
if (user) {
res
.status(400)
.json({ status: 'error', body: [{ msg: 'name already exist' }] })
}
// ... some more code
} catch(err) {
//... code
}
我不断收到:错误 [ERR_HTTP_HEADERS_SENT]:在将标头发送到客户端后无法设置标头。终端没有显示错误的确切位置。
【问题讨论】:
-
您应该
return res...,否则即使您已经尝试响应,该方法也会继续。 -
感谢您的超级快速响应!我发布这个是为了自己编写解决方案(在浪费了一些时间之后意识到这一点......)以帮助他人。还是谢谢!
标签: node.js mongodb express http mongoose