簡體   English   中英

節點express.js在發送標頭后無法設置標頭。”

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM