以下是Ubuntu Node.js日志中的常见错误及解决方法:
端口占用(EADDRINUSE)
错误:Error: listen EADDRINUSE :::端口
解决:用sudo lsof -i :端口查找占用进程,通过kill -9 PID终止,或修改应用端口。
模块未找到(Cannot find module)
错误:Error: Cannot find module 'xxx'
解决:检查模块是否安装(npm install 模块名),确认模块名拼写正确。
权限不足(EACCES)
错误:Error: EACCES, permission denied
解决:用chmod/chown调整文件/目录权限,确保进程有读写权限。
路径错误(ENOENT)
错误:Error: ENOENT: no such file or directory
解决:检查代码中文件/目录路径是否正确,使用绝对路径避免相对路径问题。
内存不足(Heap Out of Memory)
错误:JavaScript heap out of memory
解决:用heapdump模块分析内存泄漏,优化代码或增加服务器内存。
网络通信错误(ETIMEDOUT/ENOTFOUND)
错误:Error: ETIMEDOUT或ENOTFOUND
解决:检查网络连接、API端点可用性,增加请求超时时间或实现重试机制。
流未处理异常
错误:流操作未捕获错误导致崩溃
解决:为流添加.on('error', callback)事件监听器,捕获并处理异常。
PM2配置或进程管理错误
错误:pm2 stop无效、进程异常
解决:用ps aux | grep node确认进程状态,检查PM2配置文件路径和权限,必要时用kill强制终止。
环境兼容性问题
错误:代码在不同Node.js版本或系统下报错
解决:使用nvm管理Node.js版本,测试代码在目标环境的兼容性。
日志分析工具:
cat/tail/less查看日志文件,journalctl -u 服务名查看系统日志。