NodeJS:需要获取对现有服务器的引用或关闭它

时间:2017-04-24 16:00:46

标签: node.js

好的 - 所以有一些我无法找到的东西,我觉得可能相当简单。 我创建了一个服务器,但忘记捕获变量中发回的引用。

http.createServer(function (request, response) {
    // Send the HTTP header
    // HTTP Status: 200 : OK
    // Content Type: text/plain
    response.writeHead(200, {'Content-Type': 'text/plain'});

    // Send the response body as "Hello World"
    response.end('Hello World\n');
 }).listen(8081);

现在我正在尝试关闭服务器,但我没有引用服务器。 有没有办法从nodejs解释器获取引用或关闭http服务器,以避免使用taskmanager来终止进程。使用Win 7 NodeJS解释器。

不允许创建新的。

 const server = http.createServer(function(request, response) {
..     // Send the HTTP header
..     // HTTP Status: 200 : OK
..     // Content Type: text/plain
..     response.writeHead(200, {'Content-Type': 'text/plain'});
..
..     // Send the response body as "Hello World"
..     response.end('Hello World\n');
..
..  }).listen(8081, () => {
..
..     console.log("closing the server in 5 seconds");
..
..     setTimeout(() => server.close(), 5000);
..
..  });
ndefined
 Error: listen EADDRINUSE :::8081
   at Object.exports._errnoException (util.js:1012:11)
   at exports._exceptionWithHostPort (util.js:1035:20)
   at Server._listen2 (net.js:1252:14)
   at listen (net.js:1288:10)
   at Server.listen (net.js:1384:5)
   at repl:10:4
   at sigintHandlersWrap (vm.js:32:31)
   at sigintHandlersWrap (vm.js:96:12)
   at ContextifyScript.Script.runInContext (vm.js:31:12)
   at REPLServer.defaultEval (repl.js:308:29)

1 个答案:

答案 0 :(得分:1)

您可以使用server.close();关闭它,或者只使用Ctrl-C终止该过程。

http.createServer返回服务器,因此将返回值赋给变量/常量,然后您可以引用服务器。

const server = http.createServer(function(request, response) {
    // Send the HTTP header
    // HTTP Status: 200 : OK
    // Content Type: text/plain
    response.writeHead(200, {'Content-Type': 'text/plain'});

    // Send the response body as "Hello World"
    response.end('Hello World\n');

 }).listen(8081, () => {

    console.log("closing the server in 5 seconds");

    setTimeout(() => server.close(), 5000);

 });