在第一个答案中可以找到完整的概述和答案:错误:发送到客户端后不能设置头
我正在使用:
在注册新用户时,我想检查用户的电子邮件或姓名是否已经存在(因为他们必须是唯一的)。
我有一段代码:
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
}
我一直在获取:Error[ERR_HTTP_HEADERS_SENT]:发送到客户端后无法设置标头。终端没有显示错误产生的确切位置。
响应是
因此,代码继续处理第二个条件并再次尝试发送响应,但是express让我们知道响应已经发送,并且它不能再更改这些响应。
解决方案相当简单--添加