node.js错误Error:listen EADDRINUSE

本文分享了作者首次使用Node.js中的Express框架的经历,并详细记录了在尝试运行第二个JS文件时遇到的端口冲突问题及两种解决方案:关闭首个文件运行状态或修改监听端口。

今天第一次尝试了node.js中的express框架,写了第一个js文件之后,在WebStorm上运行了一下,到游览器刷新,成功运行。又创了一个js文件,写的是静态路由的访问,运行,发现,出现了Error: listen EADDRINUSE :::3000的错误,对于初学者的我,很是懵逼,在游览器反复刷新都是第一个js文件的运行结果,我恍然大悟,原来是第一个js文件还在运行,没有关闭。

有两种解决办法,一是关闭第一个js文件的执行,第二就是更改第二个js文件的监听端口。

一开始以为是没有抛出错误的原因,在网上搜了好多加err的方法都不行。



Node.js中遇到 `listen EADDRINUSE: address already in use ::1:9020` 错误,意味着端口9020已被其他进程占用。可以按照以下步骤解决该问题: ### 1. 查找占用端口的进程 在不同操作系统中,可以使用不同的命令来查找占用端口9020的进程。 #### 在Linux或macOS系统中 使用 `lsof` 或 `netstat` 命令: ```bash lsof -i :9020 ``` 或者 ```bash netstat -apn | grep :9020 ``` 示例输出可能如下: ```plaintext COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 12345 user 22u IPv6 0x881da4f2a0d52ded 0t0 TCP *:9020 (LISTEN) ``` 这里的 `12345` 就是占用端口9020的进程ID(PID)。 #### 在Windows系统中 使用 `netstat` 命令: ```bash netstat -ano | findstr :9020 ``` 示例输出可能如下: ```plaintext TCP [::1]:9020 [::]:0 LISTENING 12345 ``` 同样,`12345` 是占用端口的进程ID。 ### 2. 终止占用端口的进程 #### 在Linux或macOS系统中 使用 `kill` 命令终止进程,将 `12345` 替换为实际的PID: ```bash kill -9 12345 ``` #### 在Windows系统中 使用 `taskkill` 命令终止进程,将 `12345` 替换为实际的PID: ```bash taskkill /F /PID 12345 ``` ### 3. 更改Node.js应用的端口 如果不想终止占用端口的进程,也可以更改Node.js应用监听的端口。例如,将端口从9020更改为9021: ```javascript const http = require('http'); const server = http.createServer((req, res) => { res.end('Hello, World!'); }); server.listen(9021, () => { console.log('Server running at http://127.0.0.1:9021'); }); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值