Error: listen EADDRINUSE: address already in use :::8090

背景:

当通过 nodemon 命令运行web服务时,出现如下错误

D:\WebstormProjects\node-demo>nodemon serve.js
 [nodemon] 2.0.2
 [nodemon] to restart at any time, enter rs
 [nodemon] watching dir(s): .
 [nodemon] watching extensions: js,mjs,json
 [nodemon] starting node serve.js
 web服务以启动,可以通过localhost:8090进行访问
 events.js:200
       throw er; // Unhandled 'error' event
       ^
 Error: listen EADDRINUSE: address already in use :::8090
 ?[90m    at Server.setupListenHandle as _listen2?[39m
 ?[90m    at listenInCluster (net.js:1354:12)?[39m
 ?[90m    at Server.listen (net.js:1442:7)?[39m
     at Object. (D:\WebstormProjects\node-demo\serve.js:81:11)
 ?[90m    at Module._compile (internal/modules/cjs/loader.js:955:30)?[39m
 ?[90m    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)?[39m
 ?[90m    at Module.load (internal/modules/cjs/loader.js:811:32)?[39m
 ?[90m    at Function.Module._load (internal/modules/cjs/loader.js:723:14)?[39m
 ?[90m    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)?[39m
 ?[90m    at internal/main/run_main_module.js:17:11?[39m
 Emitted 'error' event on Server instance at:
 ?[90m    at emitErrorNT (net.js:1333:8)?[39m
 ?[90m    at processTicksAndRejections (internal/process/task_queues.js:81:21)?[39m {
   code: ?[32m'EADDRINUSE'?[39m,
   errno: ?[32m'EADDRINUSE'?[39m,
   syscall: ?[32m'listen'?[39m,
   address: ?[32m'::'?[39m,
   port: ?[33m8090?[39m
 }
 [nodemon] app crashed - waiting for file changes before starting…

解决办法:

原由:出现该问题的原因是之前已经运行了一个本地的端口号为8090的服务,并没有终止该服务,然后又再次运行该服务时出现了错误

1、打开 dos 命令行工具

2、输入netstat -ano 命令以查询端口号为8090的PID码

 netstat -ano 

3、然后通过tskill PID码 命令结束当前的进程,当前本机8090端口对应的PID码为4784

 tskill 4784

4、然后再次通过 nodemon 命令运行该服务即可

如果觉得文章有帮助到你,可以扫描以下二维码
   请本文作者 喝一杯
pay_weixin pay_weixin

发表评论

电子邮件地址不会被公开。 必填项已用*标注