【发布时间】:2021-07-01 16:56:03
【问题描述】:
我有 nodejs http 服务器。在发送一个请求并获得响应后,我尝试使用 server.close() 关闭它,但关闭它需要很长时间(超过 60 秒)。 可能是什么问题?
编辑
目前我正在使用chromes高级rest客户端进行测试,在收到响应后发送一个请求结果并缓慢关闭,据我所知它不应该卡在keep-alive上。 我肯定会在 response.write() 之后用 response.end() 结束我的回复。
这里有一些代码:
handleRequest = function(request, response) {
var body = '';
request.on('data', function (data) {
body += data;
});
request.on('end', function() {
// get some data from db...
response.setHeader('Content-Type', 'application/json');
response.write(result);
response.end();
});
});
var server = http.createServer(handleRequest);
server.listen(8000);
process.on('SIGINT', function() {
if (server != undefined) {
console.log("Closing Server...");
server.close(function (e) {
if (e) {
throw 'Error on closing server';
} else {
console.log("Server closed");
}
});
}
});
【问题讨论】:
-
如果您包含一些示例代码会很有帮助。您确定要结束回复吗?
-
我认为您遗漏了可能导致问题的原因:"get some data from db..."
-
我发现响应返回keep-alive,虽然我没有在任何地方设置它,可能是什么原因?
标签: node.js