一尘不染

优雅地退出node.js

node.js

我正在阅读出色的在线书籍http://nodebeginner.org/,并尝试了简单的代码

var http = require("http");

function onRequest(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
}

http.createServer(onRequest).listen(8888);

现在我不知道(而且我仍然不知道!)如何优雅地关闭node.js,所以我就去了ctrl+z。现在,每次我尝试运行时node server.js,都会收到以下错误消息。

node.js:134
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
Error: EADDRINUSE, Address already in use
    at Server._doListen (net.js:1100:5)
    at net.js:1071:14
    at Object.lookup (dns.js:153:45)
    at Server.listen (net.js:1065:20)
    at Object.<anonymous> (/Users/Bob/server.js:7:4)
    at Module._compile (module.js:402:26)
    at Object..js (module.js:408:10)
    at Module.load (module.js:334:31)
    at Function._load (module.js:293:12)
    at Array.<anonymous> (module.js:421:10)

因此,有两个问题:

1)如何正常关闭node.js?

2)如何修复我创建的混乱?


阅读 281

收藏
2020-07-07

共1个答案

一尘不染

  1. 使用Ctrl+ C优雅地退出节点进程

  2. 清理混乱取决于您的平台,但基本上,您需要找到运行节点的进程的其余部分并杀死它。

例如,在Unix上:ps -ax | grep node将为您提供以下条目:

    1039 ttys000    0:00.11 node index.js

index.js节点文件的名称在哪里。

在此示例中,1039是进程ID(您将有所不同),因此kill -9 1039将其终止,您将能够再次绑定到端口。

2020-07-07