Debian 环境下 JS 日志的关键错误码与异常分类
总体说明
- Debian 系统本身没有统一的 JS 错误码标准;所谓“关键错误码”通常来自两类:一是 JavaScript 运行时抛出的异常名称(如 SyntaxError、TypeError),二是 Node.js 运行时的系统/网络错误码(如 ECONNREFUSED、ETIMEDOUT)。前端 JS 错误多出现在浏览器控制台;在服务器上,常见的是 Node.js 应用日志 或 systemd 服务日志(如通过 journalctl -u your-app 查看)。
JavaScript 运行时异常名称
- SyntaxError:语法错误,如缺少括号/引号、非法标识符等。
- ReferenceError:引用未声明变量,如访问未定义变量。
- TypeError:对值执行不适当操作,如读取 undefined 的属性。
- RangeError:数值或参数超出允许范围,如递归过深导致栈溢出。
- URIError: encodeURI / decodeURI 等处理非法 URI 时抛出。
- EvalError:与 eval 使用不当相关(现代代码中较少见)。
Node.js 常见系统错误码
- ECONNREFUSED:目标主机拒绝连接(服务未监听或防火墙阻断)。
- ETIMEDOUT:连接或操作超时(网络抖动、对端无响应)。
- EADDRINUSE:端口已被占用(服务重复启动或旧进程未释放)。
- 其他常见:EPIPE(管道破裂,常见于对端关闭)、ENOTFOUND(DNS 解析失败)、ECONNRESET(连接被对端重置)等,均可能在网络请求或子进程/流操作中出现。
快速定位与排查命令
- 查看服务日志:使用 journalctl -u your-node-app.service -f 实时跟踪;或查看应用自定义日志文件(如 /var/log/yourapp.log)。
- 关键字检索:例如 grep -i ‘SyntaxError|TypeError|ECONNREFUSED’ /var/log/yourapp.log 快速定位高频异常。
- 端口占用排查:使用 ss -tulpen | grep <端口> 或 lsof -iTCP:<端口> -sTCP:LISTEN 确认占用进程并释放端口。
- 修复后重启服务:如 sudo systemctl restart your-app 使改动生效。