Ubuntu Node.js日志中错误码代表什么意思
导读:Ubuntu 上 Node.js 日志中的错误码含义与处理 一、错误码分类与含义 系统/网络类错误码(来自 POSIX/网络栈) EADDRINUSE:端口已被占用,常见于服务启动时绑定端口失败。 EACCES:权限不足,常见于绑定低...
Ubuntu 上 Node.js 日志中的错误码含义与处理
一、错误码分类与含义
-
系统/网络类错误码(来自 POSIX/网络栈)
- EADDRINUSE:端口已被占用,常见于服务启动时绑定端口失败。
- EACCES:权限不足,常见于绑定低位端口(如 80/443)或访问受限资源。
- ECONNREFUSED:连接被拒绝,目标主机未在对应端口监听或防火墙拦截。
- ENOENT:文件或目录不存在,常见于读取配置、静态资源或依赖缺失。
- ENOTFOUND:DNS 解析失败,域名无法解析为 IP。
- ETIMEDOUT:连接或读写超时,对端未及时响应。
- EPIPE:管道破裂,向已关闭的写入端写入数据。
- EMFILE:进程打开文件描述符数达到上限,常见于并发打开大量文件/连接。
- EEXIST / ENOTEMPTY / ENOTDIR / EISDIR:文件系统操作与预期不符(如目标已存在、目录非空、路径组件非目录等)。
-
Node.js 运行时/模块类错误码(以 ERR_ 开头)
- ERR_OUTOFMEMORY:操作触发内存不足。
- ERR_PARSE_HISTORY_DATA:REPL 历史文件解析失败。
- ERR_STDOUT_CLOSE / ERR_STDERR_CLOSE:用户代码尝试关闭 process.stdout/stderr(Node.js 不允许)。
- ERR_UNKNOWN_BUILTIN_MODULE:内部 Node.js 二进制问题,通常不应由用户代码触发。
- ERR_TLS_RENEGOTIATION_FAILED:TLS 重新协商失败。
- ERR_VALUE_OUT_OF_RANGE:传入值超出允许范围。
- ERR_VM_MODULE_NOT_LINKED:ES 模块未成功链接即实例化。
- ERR_ZLIB_BINDING_CLOSED:在 zlib 对象关闭后仍尝试使用。
二、快速定位与排查命令
- 定位日志位置与实时查看
- 项目常见路径:项目目录下的 logs/;系统日志:/var/log/syslog 或 /var/log/messages。
- 常用命令:
- 查看日志:cat logs/error.log
- 实时跟踪:tail -f logs/error.log
- 关键字检索:grep -i “error” logs/error.log
- 端口占用(EADDRINUSE)
- 查占用进程:sudo lsof -i :端口号
- 结束进程:sudo kill -9 进程ID
- 文件/路径问题(ENOENT/ENOTDIR 等)
- 核对路径与权限:ls -l 目标路径;必要时修正配置或创建缺失目录/文件。
- 模块缺失(Module not found)
- 安装依赖:npm install 模块名
- 资源限制(EMFILE)
- 提升进程文件描述符上限(示例):ulimit -n 2048(在同一 shell 中启动 Node 进程)。
三、常见错误码与处理建议速查表
| 错误码 | 含义 | 常见触发场景 | 快速处理 |
|---|---|---|---|
| EADDRINUSE | 地址已被使用 | 服务端口被占用 | 更换端口或 kill 占用进程 |
| EACCES | 权限不足 | 绑定低位端口、访问受限文件 | 使用 sudo 或调整权限/端口 |
| ECONNREFUSED | 连接被拒绝 | 目标服务未启动/防火墙拦截 | 启动服务、检查网络与防火墙 |
| ENOENT | 文件或目录不存在 | 读取配置/静态资源/依赖缺失 | 修正路径、创建文件或安装依赖 |
| ENOTFOUND | DNS 解析失败 | 域名无法解析 | 检查 DNS 配置或域名拼写 |
| ETIMEDOUT | 操作超时 | 连接/读写超时 | 增加超时、优化网络/后端性能 |
| EPIPE | 管道破裂 | 向已关闭的写入端写入 | 处理对端关闭与重连逻辑 |
| EMFILE | 打开文件过多 | 并发打开大量文件/连接 | 提升 ulimit、关闭闲置资源 |
| ERR_OUTOFMEMORY | 内存不足 | 大数据/内存泄漏 | 优化内存占用、扩容或限流 |
| ERR_UNKNOWN_BUILTIN_MODULE | Node.js 内部错误 | Node 二进制/环境问题 | 升级/重装 Node、检查运行环境 |
四、实用提示
- 优先从日志中提取关键字段:时间戳、错误级别(如 ERROR/WARN)、错误码(如 EADDRINUSE/ENOENT)、堆栈跟踪;使用 grep/tail 快速定位相关行并回溯调用栈。
- 若错误码为业务系统自定义的 xata0201x001 / ybla0672x093 等格式,需查阅该系统/后端的错误码文档或联系提供方支持,通用 Node.js 文档不会覆盖这类业务码。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Node.js日志中错误码代表什么意思
本文地址: https://pptw.com/jishu/758785.html
