Javascript 重新启动node.js

Javascript 重新启动node.js,javascript,node.js,Javascript,Node.js,我正在接近node.js,所以我正在运行一个明显的例子——在一个名为server.js的文件中: 我使用node server.js从终端运行这个程序,一切正常,服务器响应 但是当我需要更改server.js时: 我在文件上做了更改 再次编写node server.js 服务器以以下错误响应我: events.js:141 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE :::8888

我正在接近
node.js
,所以我正在运行一个明显的例子——在一个名为server.js的文件中:

我使用
node server.js从终端运行这个程序,一切正常,服务器响应

但是当我需要更改server.js时:

  • 我在文件上做了更改
  • 再次编写
    node server.js
服务器以以下错误响应我:

events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE :::8888
    at Object.exports._errnoException (util.js:870:11)
    at exports._exceptionWithHostPort (util.js:893:20)
    at Server._listen2 (net.js:1237:14)
    at listen (net.js:1273:10)
    at Server.listen (net.js:1369:5)
    at Object.<anonymous> (/var/www/vhosts/lizardhq.com/httpdocs/server.js:9:30)
    at Module._compile (module.js:410:26)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
events.js:141
投掷者;//未处理的“错误”事件
^
错误:侦听EADDRINUSE::8888
在Object.exports.\u errnoException(util.js:870:11)
导出时。主机端口例外(util.js:893:20)
在服务器上。\u listen2(net.js:1237:14)
听(net.js:1273:10)
在Server.listen(net.js:1369:5)
反对。(/var/www/vhosts/lizardhq.com/httpdocs/server.js:9:30)
在模块处编译(Module.js:410:26)
在Object.Module.\u extensions..js(Module.js:417:10)
在Module.load(Module.js:344:32)
在Function.Module.\u加载(Module.js:301:12)

我做错了什么?非常感谢。

此错误意味着您已经在端口
8888
上运行了Node.js服务器(或其他服务器)。您需要停止正在使用该端口的其他进程,然后才能在同一端口上启动节点服务器=)


一次只能有一个程序绑定到一个端口。

有时我会遇到这种情况,打开任务管理器| ps-一个依赖于系统和终止节点的进程。

您遇到的错误意味着您的服务器未正确关闭或仍在关闭,并且他正在侦听的端口仍在使用

您可以等待几分钟,等待端口可用,或者,如果您使用linux,您可以通过
lsof | grep8888
找到正在使用端口的进程id(
PID
),它将在第二列中为您提供一个PID,然后通过
kill-9pid
将其杀死

您还可以使用和
npm
监视文件系统的更改,并自动重新启动服务器:

安装
监控程序

npm install supervisor -g
然后,在
package.json
文件中,添加以下行:

"scripts": {
    "start": "supervisor -w 'server.js' node server.js"
},
现在,使用以下命令启动服务器:

npm start

现在,每次保存
server.js
文件时,服务器都会自动重启。不再出现
EADDRINUSE
错误

使用
supervisor
nodemon
在运行原始服务器的终端中按control+c结束它,然后再运行第二个服务器。按Ctrl+c停止正在运行的第一个服务器。听起来你好像打开了两个终端。两台服务器不能侦听同一端口。您是否理解错误消息?可能是Ok的重复,但为什么第一次Ok?我第一次使用这个端口连接node.js时,它运行得很好。这个端口一开始没有使用。运行后,该端口现在正在使用。要测试这一点,您可以尝试再次启动它并指定一个不同的端口(该端口未被使用)
npm start