我是节点和表达的新手,所以我觉得我做的事情很蠢。
完整的源代码可在以下网址找到:
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。
建议?
答案 0 :(得分:0)
在res.json()之后删除end()。
res.josn()将响应发送到frontend,end()尝试再次发送响应。 这就是你得到错误的原因。因为node.js不允许API发送两次响应。使用res.end()或res.json()。