我正在尝试在网页上显示输出,但是我可以得到以下内容
错误:错误[ERR_HTTP_HEADERS_SENT]:将标头发送到客户端后无法设置标头
假设我在此处编写console.log(name)
,可以在命令提示符下进行响应,但是如果我在编写res.send(name)
,则可以得到上述错误
请告诉我在哪里可以设置标题并提出建议,最好的在线nodejs编辑器
谢谢。...
app.get('/', (req, res) =>{
const name = [{
Name : 'Pavan',
age : 26
},{
Name : 'kumar',
age : 27
}]
for (let index = 0; index < name.length; index++) {
const element = name[index];
// res.send(name[index].Name);
console.log(name[index].Name);
}
});
答案 0 :(得分:0)
您需要将它们组合在一起并立即发送它们:
const names = name.map(({ Name }) => Name).join("<br>");
res.send(names);
答案 1 :(得分:0)
编写res.send()时,响应将发送到客户端。在for循环中编写该语句时,您试图将多个响应发送给同一请求,而这是不可能的。因此,与其将res.send发送到for循环中,不如创建一个数组并将数据推送到该数组,然后使用该数组将res.send发送到循环之外。
答案 2 :(得分:0)
res.send()
只能使用一次,之后您将获得
[ERR_HTTP_HEADERS_SENT]:将标头发送到 客户
意味着您只能一次发送对请求的响应
如果要发送姓名以进行回复,则应这样做:
app.get('/', (req, res) =>{
const name = [{
Name : 'Pavan',
age : 26
},{
Name : 'kumar',
age : 27
}]
/*for (let index = 0; index < name.length; index++) {
const element = name[index];
console.log(name[index].Name);
}*/
let onlyNames=name.map((item)=>{return item.Name+"<br/>"});
res.send(onlyNames);
});