node.js - [NodeJS]:将标头发送到客户端后无法设置标头
问题描述
完整的概述和答案可以在第一个答案中找到: 错误:发送到客户端后无法设置标头
我在用:
- 表达
- 猫鼬(用于 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]:在将标头发送到客户端后无法设置标头。终端没有显示创建错误的确切位置。
解决方案
我遇到了同样的问题,但是有一个错字试图将 2 倍的响应发送到我的函数中。看来这也是你的情况。正如@David 所提到的,return 语句使函数退出......
resp.send('OK')
do_stuff
resp.send('OK')
推荐阅读
- api - .Net Core - 基于策略的授权在授权失败时返回 500
- arrays - matlab中的索引
- solr - Solr 8.8 - 使用 eDisMax 和 EdgeNGramFilter 匹配部分单词时遇到问题
- elasticsearch - Elasticsearch 索引时间戳字段失败
- java - 我如何才能找到 Windows 阻止 java.exe 的原因?
- angular - 错误 TS2339:“任何 []”类型上不存在属性“名称”
- excel - 使用 VBA 编写公式时 OR 函数出现问题?
- c# - 循环遍历 Excel 中定义行中的单元格
- django - Django cropper.js 在移动视图中旋转拉长的肖像图像
- linux - 如何使用带有“脚本”命令的命令单独捕获输出?