繁体   English   中英

重启 node.js

[英]Restart node.js

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

var http = require("http");

function onRequest(request, response) {
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("it's alive!");
    response.end();
}

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

我从终端使用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)

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

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

您可以等待几分钟让端口可用,或者,如果您使用的是 linux,您可以通过lsof | grep 8888找到正在使用该端口的进程 ID ( PID ) lsof | grep 8888 lsof | grep 8888它将在第二列中为您提供一个 PID,然后通过kill -9 PIDkill -9 PID

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

安装supervisor

npm install supervisor -g

然后,在您的package.json文件中,添加以下行:

"scripts": {
    "start": "supervisor -w 'server.js' node server.js"
},

现在,使用以下命令启动您的服务器:

npm start

现在,每次保存server.js文件时,您的服务器都会自动重启。 没有更多的EADDRINUSE错误!

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

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

有时它发生在我身上,打开任务管理器| ps -a 依赖系统并杀死节点进程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM