我正在尝试编写一个简单的Node.js http服务器,当访问给定的URL时,它会停止并退出其进程:在这种情况下,/stop
。到目前为止,这是我的计划:
var http = require('http');
var server = http.createServer(function(request,response) {
response.end(function(){
if (request.url === '/stop') server.close();
});
});
server.listen(12345);
我期望发生的是在响应完成发送时调用回调,如果URL为/stop
则服务器关闭。然而,所有这一切最终都会显示一个空白页面(我预期)并且不做任何其他事情。
另一方面,如果我省略response.end()
:
var http = require('http');
var server = http.createServer(function(request,response) {
if (request.url === '/stop') server.close();
});
server.listen(12345);
它确实设法停止服务器,但直到我通过关闭浏览器窗口终止GET请求。
当我获取某个URL而不必关闭浏览器窗口时,如何让服务器停止? (如果我也可以向浏览器发送“服务器停止”消息,那将会很好。)
注意:我知道我实际上并没有区分GET和POST请求的代码,但我希望能够同时处理这两个问题,并且我假设答案根据类型没有不同请求。