分析 Node.js 错误日志是定位线上问题、优化稳定性的关键步骤。下面从日志来源、常见错误类型、分析思路、工具与实践几个方面系统说明。
console.errorthrow new Error('xxx')
Promise.reject(new Error('xxx'))
throw new Error('sync error')
fs.readFile('a.txt', (err, data) => {
if (err) throw err
})
常见错误:
ERR_FS_FILE_TOO_LARGEENOENT(文件不存在)| 错误 | 说明 |
|---|---|
| ECONNREFUSED | 服务未启动 |
| ETIMEDOUT | 超时 |
| ENOTFOUND | DNS 问题 |
| EPIPE | 客户端提前断开 |
JavaScript heap out of memoryEMFILE(文件句柄耗尽)ENOMEMError: connect ECONNREFUSED 127.0.0.1:3306
→ 明确是 网络 / 数据库问题
at Database.query (db.js:23)
at UserService.getUser (user.js:45)
Error: ER_ACCESS_DENIED_ERROR: Access denied for user
✅ 分析:
FATAL ERROR: Ineffective mark-compacts near heap limit
✅ 分析:
UnhandledPromiseRejectionWarning
✅ 分析:
catchprocess.on('unhandledRejection', err => {
console.error(err)
})
node --inspect✅ 统一错误结构
{
code: 'ERR_USER_NOT_FOUND',
message: '用户不存在',
stack: '...',
requestId: 'abc123'
}
✅ 区分错误类型
✅ 全局兜底
process.on('uncaughtException', err => {})
process.on('unhandledRejection', err => {})
✅ 日志要可追踪
你可以直接发我:
我可以 逐行帮你分析 + 给出修复方案。