[英]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.