node express.js发送后无法设置标题。'
我是新来的节点和快递,所以我想我做的事情很愚蠢。node express.js发送后无法设置标题。'
完整的源代码,可以发现:
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()向前端发送响应,end()尝试再次发送响应。 那就是你得到错误的原因。因为node.js不允许API发送响应两次。使用res.end()或res.json()。
我删除了.end()调用,但它没有帮助。 –
你现在得到了什么错误... –
这个问题似乎在[link](https://github.com/wa1gon/aclogGate/blob/master/server/aclogApi/AcLogConn.ts)我打电话给logRouter。 get('/ loggate/va/listall from net.socket.on callback。如果我得到回拨它的作用。 –
在调用json函数后,删除'.end()'。 – noahnu