常见日志路径
logs 文件夹或配置文件指定的路径(如 /var/log/myapp/)。journalctl 查看(如 journalctl -u your-node-service)。tail -f app.log 或 pm2 logs(若用 PM2 管理进程)。命令行工具辅助
grep 'Error' app.log:过滤错误关键字。less app.log:分页查看日志。| 错误类型 | 典型示例 | 解决方法 |
|---|---|---|
| 语法错误(SyntaxError) | Unexpected token } |
检查代码语法,修复缺失括号、引号等问题。 |
| 引用错误(ReferenceError) | variable is not defined |
确保变量已定义,检查拼写错误。 |
| 类型错误(TypeError) | Cannot read property 'xxx' of undefined |
检查对象是否初始化,使用可选链(?.)避免未定义访问。 |
| 未处理 Promise 拒绝 | UnhandledPromiseRejectionWarning |
为 Promise 添加 .catch(),或用 process.on('unhandledRejection') 全局捕获。 |
| 内存不足错误 | JavaScript heap out of memory |
优化代码减少内存占用,或通过 --max-old-space-size 调整内存限制。 |
| 端口占用错误 | Error: listen EADDRINUSE :::3000 |
用 lsof -i :3000 找到占用进程并终止,或修改应用端口。 |
日志管理工具
pm2 install pm2-logrotate)。系统级工具
logrotate:自动管理日志文件轮转,避免占用过多磁盘空间。dmesg:查看内核日志,排查硬件或系统级问题。调试技巧
node inspect app.js 启动调试模式,配合 Chrome DevTools 逐步排查代码。console.error 或使用日志库记录关键变量值,辅助定位问题。process.on('uncaughtException') 捕获未处理的同步异常。error、warn、info 级别,便于快速筛选关键信息。参考来源: