一尘不染

从命令行停止node.js程序

node.js

我有一个侦听端口的简单TCP服务器。

var net = require("net");

var server = net.createServer(function(socket) {
    socket.end("Hello!\n");
});

server.listen(7777);

我先将其启动node server.js,然后在Mac上使用Ctrl + Z将其关闭。当我尝试再次运行它时,出现node server.js以下错误消息:

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
          ^
Error: listen EADDRINUSE
at errnoException (net.js:670:11)
at Array.0 (net.js:771:26)
at EventEmitter._tickCallback (node.js:192:41)

我是否以错误的方式关闭程序?如何防止这种情况发生?


阅读 469

收藏
2020-07-07

共1个答案

一尘不染

要结束程序,您应该使用Ctrl+ C。如果这样做,它会发送SIGINT,从而允许程序正常结束,并与正在侦听的任何端口解除绑定。

另请参阅:https :
//superuser.com/a/262948/48624

2020-07-07