首页主机资讯Ubuntu Node.js日志中错误码代表什么意思

Ubuntu Node.js日志中错误码代表什么意思

时间2025-11-28 10:20:03发布访客分类主机资讯浏览1318
导读: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
如何使用工具辅助分析Ubuntu Node.js日志 Ubuntu Node.js日志与系统日志如何关联

游客 回复需填写必要信息