错误[ERR_HTTP_HEADERS_SENT]:在将标头发送到ServerResponse处的客户端后,无法设置标头。ServerResponse上的setHeader(_http_outgoing.js:485:11)。ServerResponse上的标头(E:\download\react native\chat app\backend\node_modules\express\lib\response.js:771:10)。在ServerResponse发送(E:\download\react native\chat app\backend\node_modules\express\lib\response.js:170:12)。json(E:\download\react native\chat app\backend\node_modules\express\lib\response.js:267:15),网址:E:\download\respondnative\hat app\backend\routes\routes。js:183:40在processTicksAndRejections(internal/process/task_queues.js:93:5){code:'ERR_HTTP_HEADERS_SENT'}
代码:
app.post("/images", (req, res) => {
const uname = req.body.userName;
FreindRequest.find({ $and: [{ acceptance: "accept" }, { $or: [{ reciever: uname }, { sender: uname }] }] }).then(
users => {
if (users) {
users.map(user => {
ImageModel.find({ $or: [{ userName: user.sender }, { userName: user.reciever }] }).then(user => {
if (user) {
res.json(user);
}
else {
res.json({ error: "error" })
}
}).catch(err => console.log(err));
})
}
else {
res.json({ error: "error" });
}
}
).catch(err => res.json({ error: "error" }));
});
对于一个请求,您只能发送一个响应。所以不应该在map函数内部使用res.json()。
如果您想发送多个JSON,您可以在函数中创建一个数组,然后推送所有数据,并在如下map函数之后发送res.JSON()。
app.post("/images",async (req,res)=>{
const uname=req.body.userName;
FreindRequest.find({$and:[{acceptance:"accept"},{$or:[{reciever:uname},{sender:uname}]}]})
.then( users=>{
if(users){
let userImages = []
await users.map(user=>{
ImageModel.find({$or:[{userName:user.sender},{userName:user.reciever}]})
.then(user=>{
if(user){
userImages.push(user)
} else {
res.json({error:"error"})
}
})
.catch(err=>res.json({error:"error"}));
})
res.json(userImages)
} else {
res.json({error:"error"});
}
})
.catch(err=>res.json({error:"error"}));
});
我正试图创造一个垃圾。我已经创建了更新,但是当我尝试从postman请求时,我得到以下错误: 错误 [ERR_HTTP_HEADERS_SENT]: 在服务器响应.set 上将标头发送到客户端后无法设置标头 (_http_outgoing.js:526:11) 在服务器响应..node_modules (E:\freebooks-core-api\node_modules node_modules
问题内容: 我对Node.js相当陌生,遇到了一些问题。 我正在使用Node.js 4.10和Express 2.4.3。 当我尝试访问http://127.0.0.1:8888/auth/facebook时,我将重定向到http://127.0.0.1:8888/auth/facebook_callback。 然后,我收到以下错误: 以下是我的代码: 我可以知道我的代码有什么问题吗? 问题答案:
我正在关注一个关于udemy上的节点.js的课程,这有点过时了,遇到了这些错误,我无法找到解决方案。 我尝试了什么: 使用next(); 在所有if语句中添加返回res 有人能帮我修一下这些吗?我将不胜感激! 提前感谢! 用户名存在错误:错误 [ERR_HTTP_HEADERS_SENT]:在服务器响应.set 上将标头发送到客户端后无法设置标头 (_http_outgoing.js:526:11
问题内容: 我对Node.js相当陌生,遇到了一些问题。 我正在使用Node.js 4.10和Express 2.4.3。 当我尝试访问http://127.0.0.1:8888/auth/facebook时,我将重定向至http://127.0.0.1:8888/auth/facebook_callback。 然后,我收到以下错误: 以下是我的代码: 我可以知道我的代码有什么问题吗? 问题答案:
所以我看到了一篇很棒的帖子“错误:发送到客户端后无法设置标题,但仍然不明白我的“标题”部分有什么问题,因为当我将它从注释掉的
问题内容: 将标头发送到客户端后,无法设置标头。这是请求验证后的后端错误,看起来像标头问题。我为我的项目脏代码感到抱歉,我还需要做其他事情,因此在注释中有一些代码。这是我的代码 您可以在我的代码中发现其他错误,因为我尝试了许多不同的方法。这是passport.js配置文件 这是身份验证的ajax请求 非常感谢你。 问题答案: 这是由于您的代码试图从authenticate函数发送多个响应。 删除其