You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Express服务器启动时生成端口文件引发EADDRINUSE错误的解决咨询

Express服务器启动时生成端口文件引发EADDRINUSE错误的解决咨询

看起来你遇到了一个挺闹心的小问题——启动Express服务器时自动生成带端口号的奇怪文件,重启还报端口被占用的错,我来帮你一步步排查解决:

先搞懂问题根源

这个port(5004;)文件绝对不是Node或Express默认生成的,大概率是代码里的小失误:要么是不小心把端口号当成文件名写入了,要么是读取环境变量时带了多余字符(比如分号),导致后续逻辑出错。

具体解决步骤

  • 第一步:清理当前的“烂摊子”
    先手动删掉那个port(5004;)文件,然后杀掉占用5004端口的进程:

    • Windows:打开命令提示符,先执行netstat -ano | findstr :5004找到进程PID,再用taskkill /PID <找到的PID> /F强制杀掉进程。
    • macOS/Linux:终端直接输入lsof -ti:5004 | xargs kill -9,一键干掉占用端口的进程。
  • 第二步:检查端口变量的定义与使用
    打开你的src/index.js,找端口相关的代码:

    • 确保从.env读取端口时,转成纯数字且去掉多余字符:const PORT = parseInt(process.env.PORT, 10) || 5004;
    • 检查.env文件里的端口定义,必须是PORT=5004,不能有分号、空格或者引号(比如PORT=5004;这种写法就是坑)。
  • 第三步:排查代码中的文件写入逻辑
    全局搜索项目里的文件操作代码(比如fs.writeFile、fs.writeFileSync),看看是不是调试时加的测试代码忘了删,或者变量名写错,把端口号当成文件名用了。比如有没有类似fs.writeFileSync(port(${PORT};), 'test')这种误写?

  • 第四步:检查nodemon配置(如果用dev模式)
    如果你用nodemon启动开发服务器,看看有没有自定义的nodemon.json配置文件,里面有没有奇怪的文件生成或监听规则,导致自动创建了这个端口文件。

最后验证

把上面的步骤都检查完后,再启动服务器试试。如果还是有问题,把src/index.js里的服务器启动代码贴出来,能更精准地定位问题~

备注:内容来源于stack exchange,提问作者Pavitar Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 06:54:51