运行node index.js启动Node服务报events.js:377未处理error事件如何解决
解决方案
这个报错在启动Node HTTP服务的场景下,绝大多数是你配置的监听端口已被其他进程占用导致的,可按以下步骤排查处理:
- 优先测试更换端口:修改index.js中listen方法指定的端口号,比如把默认的3000改为3001、8090等未被使用的端口,重新执行
node index.js验证是否能正常启动。 - 若需要继续使用原端口,可杀死占用端口的进程:
- Windows系统:打开命令提示符执行
netstat -ano | findstr "你的目标端口号",获取占用端口的进程PID后,执行taskkill /f /t /im 对应PID即可终止占用进程。 - Mac/Linux系统:在终端执行
lsof -i:你的目标端口号,获取对应进程PID后,执行kill -9 对应PID即可终止占用进程。
- Windows系统:打开命令提示符执行
- 后续可在代码中添加错误监听逻辑,避免直接抛出未捕获异常,同时能获得更明确的错误提示,示例代码如下:
const http = require('http'); const server = http.createServer((req, res) => { res.end('服务响应内容'); }); // 监听服务启动错误 server.on('error', (err) => { if (err.code === 'EADDRINUSE') { console.error('当前端口已被占用,请更换端口或清理占用进程'); } else { console.error('服务启动失败:', err); } }); server.listen(3000, () => { console.log('服务已启动,访问地址:http://localhost:3000'); });
内容的提问来源于stack exchange,提问作者wook
相关产品推荐
相关产品推荐

