运行Node.js应用时,终端输出的错误信息是最直接的线索(如语法错误、依赖缺失、端口冲突等)。若应用有日志文件(如error.log、combined.log),使用tail -f error.log实时查看最新错误记录,能快速定位问题发生的上下文。
EACCES或EADDRINUSE错误,可通过chmod +x your-script.js修改文件权限,或用sudo运行应用;端口冲突时,用netstat -an | grep 端口号检查占用进程,更改应用端口或终止占用进程。missing-module-name,在项目根目录运行npm install missing-module-name安装缺失依赖;若依赖版本冲突,用npm ls查看依赖树,调整package.json中的版本号。^16.0.0而当前是18.0.0),用n工具切换版本:sudo apt install n → sudo n 16,再重新安装依赖并运行。通过node --inspect-brk your-script.js启动调试模式(--inspect-brk会在第一行暂停),然后在Chrome浏览器访问chrome://inspect,点击“为Node打开专用DevTools”,即可设置断点、查看变量、单步执行代码。
在项目根目录创建.vscode/launch.json文件,配置调试任务(示例):
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug Node.js",
"program": "${workspaceFolder}/app.js",
"skipFiles": ["<node_internals>/**"]
}
]
}
按F5启动调试,支持断点、变量监视、调用栈分析等功能,适合复杂项目的交互式调试。
用npm install debug --save安装,代码中引入并使用:
const debug = require('debug')('myapp:server');
debug('Server started at %s', new Date()); // 输出格式:myapp:server Server started at 2025-11-09T12:00:00.000Z
通过DEBUG=myapp:server node app.js动态开启调试,避免无关日志干扰,适合生产环境的轻量级调试。
使用winston或morgan等日志库记录详细日志(如请求时间、状态码、错误堆栈),配置日志轮转(如maxsize: 200000、maxFiles: 10)避免文件过大。对于生产环境,可将日志发送到ELK Stack(Elasticsearch+Logstash+Kibana)或Prometheus+Grafana,实现日志聚合、可视化与性能监控。
用pm2管理Node.js进程,确保应用稳定运行:
sudo npm install pm2 -g
pm2 start app.js --name "my-node-app" # 启动应用
pm2 logs # 查看实时日志
pm2 restart my-node-app # 重启应用
pm2支持日志保存、进程守护、自动重启等功能,适合生产环境的长期运行。