Ubuntu 上 Node.js 日志中的错误码含义与处理
一、错误码分类与含义
系统/网络类错误码(来自 POSIX/网络栈)
Node.js 运行时/模块类错误码(以 ERR_ 开头)
二、快速定位与排查命令
三、常见错误码与处理建议速查表
| 错误码 | 含义 | 常见触发场景 | 快速处理 |
|---|---|---|---|
| EADDRINUSE | 地址已被使用 | 服务端口被占用 | 更换端口或 kill 占用进程 |
| EACCES | 权限不足 | 绑定低位端口、访问受限文件 | 使用 sudo 或调整权限/端口 |
| ECONNREFUSED | 连接被拒绝 | 目标服务未启动/防火墙拦截 | 启动服务、检查网络与防火墙 |
| ENOENT | 文件或目录不存在 | 读取配置/静态资源/依赖缺失 | 修正路径、创建文件或安装依赖 |
| ENOTFOUND | DNS 解析失败 | 域名无法解析 | 检查 DNS 配置或域名拼写 |
| ETIMEDOUT | 操作超时 | 连接/读写超时 | 增加超时、优化网络/后端性能 |
| EPIPE | 管道破裂 | 向已关闭的写入端写入 | 处理对端关闭与重连逻辑 |
| EMFILE | 打开文件过多 | 并发打开大量文件/连接 | 提升 ulimit、关闭闲置资源 |
| ERR_OUTOFMEMORY | 内存不足 | 大数据/内存泄漏 | 优化内存占用、扩容或限流 |
| ERR_UNKNOWN_BUILTIN_MODULE | Node.js 内部错误 | Node 二进制/环境问题 | 升级/重装 Node、检查运行环境 |
四、实用提示