Ubuntu JS日志中错误代码含义解析
导读:Ubuntu 环境下 JavaScript 日志错误代码含义与排查 一 常见 JavaScript 运行时错误类型与含义 SyntaxError:语法解析失败,代码写法不合法(如缺少括号、引号不匹配)。 TypeError:对不兼容类型执...
Ubuntu 环境下 JavaScript 日志错误代码含义与排查
一 常见 JavaScript 运行时错误类型与含义
- SyntaxError:语法解析失败,代码写法不合法(如缺少括号、引号不匹配)。
- TypeError:对不兼容类型执行操作(如把数字当函数调用、访问 undefined 的属性)。
- ReferenceError:访问未声明或未定义的变量/属性。
- RangeError:数值或参数超出允许范围(如数组长度为负、toFixed 参数非法)。
- URIError:URI 编解码参数不合法(如 malformed URI)。
- EvalError:与 eval 使用相关的错误(在现代环境已较少见)。
- Error:通用错误基类,其他错误均继承自它。
以上类型在 Ubuntu 上的 Node.js 或前端浏览器控制台日志中均常见,含义与触发场景基本一致。
二 Node.js 常见系统或网络错误码与处理
- EADDRINUSE:端口被占用(如 :::3000、:::443)。处理:lsof -i :端口 查进程 PID,kill -9 释放端口。
- EADDRNOTAVAIL:绑定地址不可用(如 :::8080、:::22)。处理:检查本机网卡与 IP 配置是否正确。
- EACCES:权限不足(如绑定 443/80 需要 root 或 CAP_NET_BIND_SERVICE,或日志文件不可写)。处理:以合适权限运行或调整文件/目录权限。
- ENOENT:路径不存在(模块未安装、文件缺失)。处理:npm install 或修正路径。
- ETIMEDOUT:网络连接超时。处理:检查网络连通性、目标服务状态或适当增大超时。
- ENOMEM / JavaScript heap out of memory:内存不足。处理:优化内存占用,或临时提升堆上限 node --max-old-space-size=4096 app.js。
- UnhandledPromiseRejectionWarning:未处理的 Promise 拒绝。处理:为所有 Promise 加 .catch,或用 try/catch 包裹 async/await,并监听 process.on(‘unhandledRejection’)。
- DeprecationWarning:使用了已弃用 API(如旧版 Buffer 构造)。处理:按官方建议改用安全替代(如 Buffer.alloc),并升级依赖/Node 版本。
- MaxListenersExceededWarning:事件监听器可能泄漏。处理:避免重复添加监听器,必要时 emitter.setMaxListeners 或移除监听器。
以上错误码在 Ubuntu 的 Node.js 服务日志中非常典型,需结合堆栈与系统状态综合判断。
三 快速定位与日志查看命令
- 实时查看服务日志:
- 原生/系统服务:journalctl -u your-node-service --no-pager --since “10 minutes ago”
- 文件日志:tail -f logs/app.log
- PM2 管理:pm2 logs your-app;按级别筛选:pm2 logs your-app --lines 50 | grep WARN
- 定位端口占用:lsof -i :3000(或 :443),必要时 kill -9
- 生产建议:使用结构化日志库(如 Winston/Bunyan/Pino),便于检索与聚合分析。
四 最小化排查示例
- 端口冲突 EADDRINUSE:
- lsof -i :3000 找到占用进程 PID;2) kill -9 ;3) 重启服务。
- 模块未找到 Error: Cannot find module ‘xxx’:
- 确认依赖已安装(npm install);2) 检查模块名与路径;3) 若是本地文件,确认相对/绝对路径正确。
- 未处理的 Promise 拒绝:
- 给每个 Promise 加 .catch;2) 在 async 函数中使用 try/catch;3) 临时监听 process.on(‘unhandledRejection’) 记录并告警。
- 内存不足 ENOMEM:
- 排查内存泄漏(大数据结构、缓存未清理);2) 临时提升堆上限:node --max-old-space-size=4096 app.js;3) 结合性能分析工具定位热点。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu JS日志中错误代码含义解析
本文地址: https://pptw.com/jishu/770547.html
