繁体   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