CentOS JS日志中常见的错误代码
小樊
41
2026-01-08 02:39:44
CentOS环境下 JS 日志常见错误代码与含义
一 运行时系统错误码 Node.js 常见
- EACCES:权限被拒绝,常见于访问受限文件/目录或绑定低号端口(如80/443)。处理:校正文件权限或以具备权限的用户运行,必要时改用高端口。
- EADDRINUSE:地址已被占用,端口被其他进程占用。处理:更换端口或结束占用该端口的进程(如 kill/ss -tulpen | grep 端口)。
- ECONNREFUSED:连接被拒绝,目标服务未启动、URL 错误或防火墙拦截。处理:确认目标服务运行、网络与防火墙策略正确。
- ERR_TIMEOUT:操作超时,常见于外部 API/数据库响应慢或网络抖动。处理:优化调用、增加超时阈值或重试。
- ERR_HTTP2_PROTOCOL_ERROR:HTTP/2 协议错误,多为服务端/客户端协议配置不匹配。处理:核对 ALPN/h2 配置与依赖版本。
- ERR_INVALID_RESPONSE:响应无效或不可解析。处理:校验上游返回内容与 Content-Type/编码。
二 JavaScript 语言异常类型
- SyntaxError:语法解析失败,如缺少括号/引号、非法 token。
- ReferenceError:引用未声明变量。
- TypeError:操作数/参数类型不符,如读取 undefined 的属性。
- RangeError:数值或递归深度越界。
- URIError: encodeURI/encodeURIComponent 等参数非法。
- InternalError:引擎内部错误,如栈溢出。
- AggregateError:多个错误聚合(如 Promise.all 多个 reject)。
- EvalError: eval 使用不当(现代引擎较少见)。
- 以及 CustomError:业务自定义错误。
三 前端 JS 运行时错误场景
- Cannot read property ‘x’ of undefined / null:典型的 TypeError,多因对象未初始化或异步数据未到位就访问属性。
- undefined is not a function:调用了不存在的方法或类型不匹配。
- Script error.:跨域脚本未正确设置 CORS 或 Source Map,导致浏览器屏蔽详情。
- SourceMap 相关提示(如 Cannot get SourceMap info):生产包缺少 Source Map,堆栈只能显示编译后位置,定位困难。
- Uncaught (in promise):未捕获的 Promise 异常,常见于未使用 .catch() 或 try/catch 包裹异步逻辑。
四 快速定位与排查命令
- 查看服务日志:
- 实时查看 systemd 日志:journalctl -u your-app.service -f
- 跟踪文件尾部:tail -f /var/log/your-app.log | grep -i error
- 检查端口占用:ss -tulpen | grep 3000 或 netstat -tulpen | grep 3000
- 确认运行时与依赖:node -v、npm list;必要时重装依赖:npm install
- 前端侧:打开 Chrome DevTools Console 查看报错与堆栈;生产环境建议接入 Sentry/Bugsnag/LogRocket 等错误监控并上传 Source Map。
五 常见错误对照表
| 错误码/类型 |
含义 |
常见触发 |
快速修复 |
| EACCES |
权限被拒绝 |
访问受限文件/目录、绑定低号端口 |
调整权限或以合适用户运行,改用高端口 |
| EADDRINUSE |
地址已被占用 |
端口冲突 |
更换端口或结束占用进程 |
| ECONNREFUSED |
连接被拒绝 |
目标服务未启动、URL 错误、防火墙拦截 |
启动服务、核对地址与防火墙 |
| ERR_TIMEOUT |
超时 |
外部依赖慢、网络抖动 |
优化调用、增加超时、重试 |
| ERR_HTTP2_PROTOCOL_ERROR |
HTTP/2 协议错误 |
协议/配置不匹配 |
核对 ALPN/h2 配置与依赖 |
| ERR_INVALID_RESPONSE |
响应无效 |
上游返回格式错误 |
校验上游响应与 Content-Type |
| SyntaxError |
语法错误 |
代码写法不合法 |
修正语法、使用 ESLint 预检 |
| TypeError |
类型错误 |
读取 undefined/null 属性 |
增加空值判断、初始化数据 |
| ReferenceError |
引用未声明变量 |
变量未定义 |
检查作用域与拼写 |
| RangeError |
越界错误 |
递归过深、数值越界 |
限制递归深度、校验参数范围 |
| AggregateError |
聚合错误 |
Promise.all 多 reject |
分别处理各 Promise 错误 |
| Uncaught (in promise) |
未捕获 Promise 异常 |
缺少 .catch()/try-catch |
增加捕获与错误上报 |