[英]node express.js Can't set headers after they are sent.'
我对这两个节点都表示陌生,所以我认为自己在做一些愚蠢的事情。
完整的源代码可以在以下位置找到:
https://github.com/wa1gon/aclogGate/tree/master/server
logRouter.get("/loggate/v1/listall", function(req, res) {
let countStr = req.param('count');
let count: number;
if (!countStr) {
count = null;
} else {
count = Number.parseInt(countStr);
if (count == NaN) count = null;
}
acConn.listAllDatabase(count, (err: string, result: Array<LogGateResp>) => {
console.log("got list all data resp")
return res.json(result).end();
});
}
);
app.use('/', logRouter);
虽然它第一次工作,但是第二次却炸毁了。
listallDatabase连接到一个网络套接字,该套接字将XML数据库取回来,对其进行解析并使用JS对象进行回调。 依次调用res.json。
建议?
在res.json()之后删除end()。
res.josn()将响应发送到frontend,end()尝试再次发送响应。 那就是为什么您得到错误。 因为node.js不允许API发送两次响应。 使用res.end()或res.json()。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.