Node.js 在项目文件中做了几次更改后,nodemon崩溃了?

Node.js 在项目文件中做了几次更改后,nodemon崩溃了?,node.js,npm,node-modules,nodemon,Node.js,Npm,Node Modules,Nodemon,当我更新项目文件时,我发现以下问题: events.js:183 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE :::4000 at Object._errnoException (util.js:1022:11) at _exceptionWithHostPort (util.js:1044:20) at Server.setupListenHandle [as _listen2] (ne

当我更新项目文件时,我发现以下问题:

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

 Error: listen EADDRINUSE :::4000
at Object._errnoException (util.js:1022:11)
at _exceptionWithHostPort (util.js:1044:20)
at Server.setupListenHandle [as _listen2] (net.js:1351:14)
at listenInCluster (net.js:1392:12)
at Server.listen (net.js:1476:7)
at Function.listen (E:\nodejs-mysql-authentication- master\node_modules\express\lib\application.js:618:24)
at Object.<anonymous> (E:\nodejs-mysql-authentication-master\server.js:26:5)
at Module._compile (module.js:643:30)
at Object.Module._extensions..js (module.js:654:10)
at Module.load (module.js:556:32)
[nodemon] app crashed - waiting for file changes before starting...
events.js:183
投掷者;//未处理的“错误”事件
^
错误:侦听EADDRINUSE::4000
对象处的错误异常(util.js:1022:11)
at_例外WithHostPort(util.js:1044:20)
在Server.setupListenHandle[as _listen2](net.js:1351:14)
在listenInCluster(net.js:1392:12)
在Server.listen(net.js:1476:7)
在Function.listen(E:\nodejs mysql authentication-master\node\u modules\express\lib\application.js:618:24)
反对。(E:\nodejs mysql身份验证主机\server.js:26:5)
在模块处编译(Module.js:643:30)
在Object.Module._extensions..js(Module.js:654:10)
在Module.load(Module.js:556:32)
[nodemon]应用程序崩溃-正在等待文件更改,然后再启动。。。
我已经尝试了所有这一点来缩短下面给出的这个问题

1.我手动停止所有节点服务,然后再次尝试npm start。如果我更改端口4001,则它不工作。一段时间后,再次尝试相同的问题端口4001

2.我增加了nodemon文件监视程序的大小,但这个问题仍然没有得到解决

但当我重新启动电脑时,nodemon正在同一个端口上工作。 因此,如果我不想更改端口,也无法重新启动电脑,如何解决此问题。

--signal SIGTERM
添加到nodemon命令行已为我修复。有关更多详细信息,请访问

出现此问题的原因是,当nodemon重新启动应用程序时,一个线程仍在运行,并且该线程已在使用您要使用的端口。您可以通过以下步骤进行确认:

  • 让nodemon崩溃。您应该会看到类似OP发布的错误
  • 当nodemon停止时,按CTRL+c
  • 输入
    netstat-napt | grep[YOUR_PORT]
    ,将[YOUR_PORT]替换为您正在使用的端口号。在OP的例子中是4000
  • 您应该让进程在该端口上侦听。该命令将返回如下内容:

    ff@darkpc:~/dev/dp/graphql/teste1> netstat -napt | grep 4000
    (Not all processes could be identified, non-owned process info
    will not be shown, you would have to be root to see it all.)
    tcp6    0      0 :::4000           :::*                    LISTEN      31837/node8
    
  • 如果您再次尝试运行nodemon,它将崩溃

  • 通过
    kill 31837
    使用您的端口终止进程在这种情况下
    31387
    是节点8的PID,如上所示
  • 再次运行nodemon,它就会工作

--signal SIGTERM
添加到nodemon命令行将终止主进程及其所有线程,并应修复该问题

你能帮我试试下面的步骤吗?1.开始在4000端口上使用nodemon。2.使用
netstat-lpn
进行检查。3.让它重新启动并使用
netstat-lpn
再次检查。EADDRINUSE=Address/Port in use。基本上,它正在重新启动,但不会杀死另一个进程或其子进程。不,它不起作用。我以前已经做过了@JackIn正在更改哪些文件。是否尝试1。正在删除nodemon
npm unistall nodemon-g
2<代码>npm缓存清理3。再次重新安装
npm i nodemon-g
我到处寻找这个非常烦人的问题的解决方案,这就是最终的解决方案,谢谢!注意,您还可以将设置放在项目根目录的
nodemon.json
中,例如
{“signal”:“SIGTERM”}