温馨提示×

linux nodejs日志为何报错

小樊
35
2026-10-05 12:52:13
栏目: 编程语言

“Linux 下 Node.js 日志报错”这个现象太宽泛了,不同报错原因完全不同。我先给你一个常见原因速查表,你可以对照你的日志;如果你愿意,把具体报错信息贴出来,我可以直接帮你定位。


一、最常见 Node.js 在 Linux 上报错原因

1️⃣ 权限问题(最常见)

报错示例

EACCES: permission denied
Error: listen EACCES: permission denied 0.0.0.0:80

原因

  • 端口 < 1024(80 / 443)需要 root
  • 日志目录无写权限
  • node_modules 安装时权限不对

解决

# 不要用 sudo 跑全局
sudo chown -R $USER:$USER /your/project

# 或
sudo setcap cap_net_bind_service=+ep $(which node)

2️⃣ 端口被占用

报错示例

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

解决

lsof -i:3000
kill -9 PID

3️⃣ Node.js 版本不兼容

报错示例

SyntaxError: Unexpected token ?

或

ERR_REQUIRE_ESM

原因

  • 老 Node 跑新语法
  • CommonJS / ESM 混用

解决

node -v
# 升级
nvm install 18
nvm use 18

4️⃣ 找不到模块

报错示例

Cannot find module 'express'

解决

rm -rf node_modules package-lock.json
npm install

5️⃣ 文件 / 路径问题(Linux 区分大小写)

报错示例

Cannot find module './Config'

原因

  • Windows 不区分大小写
  • Linux 严格区分

解决

  • 检查 require('./config') 与实际文件名一致

6️⃣ 内存不足(OOM)

报错示例

FATAL ERROR: Reached heap limit

解决

node --max-old-space-size=2048 app.js

7️⃣ 使用 PM2 / systemd 时的环境不同

现象

  • 手动能跑
  • PM2 / systemd 报错

原因

  • PATH / ENV 不同

排查

pm2 logs
journalctl -u your-service

二、建议你提供这些信息,我可精准判断

请贴出:

  1. 完整报错日志
  2. 运行方式(node app.js / pm2 / docker)
  3. Linux 发行版(CentOS / Ubuntu)
  4. Node 版本

你可以直接把报错 复制过来,我帮你一行一行分析。

0 踩