在 Linux 上运行 Node.js 服务时“日志报错很多”,通常不是 Node.js 本身的问题,而是环境、代码、依赖或运维方式导致的。下面按常见原因系统梳理一下,并给出排查思路。
Node.js 对未处理错误非常敏感:
uncaughtExceptionunhandledRejection表现:
TypeError: Cannot read property 'x' of undefined
UnhandledPromiseRejectionWarning
✅ 解决:
process.on('uncaughtException', e => { /* log */ })
process.on('unhandledRejection', e => { /* log */ })
.catchasync/await + try/catch很多项目默认:
logger.level = 'debug'
结果:
✅ 解决:
warn 或 errorconsole.error 和 logger.errorLinux 上常见:
node-sass / bcrypt / sharp 编译失败报错示例:
Error: Module version mismatch
Symbol not found
✅ 解决:
node -v
npm ls <pkg>
ldd node
npm rebuildNode 进程无权限:
报错:
EACCES: permission denied
✅ 解决:
ps -ef | grep node
ls -l /var/log/xxx
Linux 服务器常见:
报错:
EMFILE: too many open files
OutOfMemoryError
✅ 解决:
ulimit -n
free -m
dmesg | grep oom
日志会“看起来很多错误”,其实是依赖不稳定
✅ 排查:
curl http://db:3306
telnet redis 6379
表现:
✅ 解决:
是不是真的 error?
grep -i error app.log | wc -l
错误是否重复?
sort app.log | uniq -c | sort -nr | head
Node 版本是否匹配?
node -v
是否是环境问题?
你可以贴一下:
我可以直接帮你定位是哪一类问题 + 给具体修复方案。