Node.js在Debian上的调试技巧
Node.js内置了基于V8 Inspector协议的调试器,可通过命令行快速启动调试模式。启动时添加--inspect(允许应用正常启动后附加调试器)或--inspect-brk(启动时暂停在第一行,便于从开头调试)标志,例如:
node --inspect-brk app.js
这会在默认端口9229上启动调试服务器,输出类似Debugger listening on ws://127.0.0.1:9229/xxxxxx的信息。
Chrome浏览器的DevTools提供了图形化调试界面,适合直观查看变量、调用栈和DOM(若涉及前端渲染)。操作步骤:
chrome://inspect;node://app.js),点击“inspect”;VS Code是Node.js开发的常用IDE,内置调试功能且配置简单。步骤如下:
Ctrl+Shift+D);{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/app.js",
"skipFiles": ["<node_internals>/**"] // 忽略Node.js内部文件
}
]
}
F5启动调试,VS Code会自动附加到Node.js进程,支持断点、变量监视、调用栈分析等功能。debug包是轻量级的日志调试工具,适合模块化应用(如Express、Koa)。安装后,通过命名空间区分不同模块的日志:
npm install debug;const debug = require('debug')('myapp:server'); debug('Server started');DEBUG环境变量指定命名空间,例如DEBUG=myapp:server node app.js,只会输出myapp:server前缀的日志。还可通过DEBUG_COLORS=true开启彩色输出,提升可读性。nodemon能监控文件变化并自动重启应用,避免频繁手动重启,提升开发效率。安装全局工具:npm install -g nodemon;
nodemon --inspect app.js(自动重启并开启调试模式);nodemon.json指定监控目录和调试命令:{
"watch": ["src"], // 监控src目录
"exec": "node --inspect-brk src/app.js" // 启动时暂停在第一行
}
nodemon,修改代码后会自动重启并保持调试状态。console.log()是最基础的调试方法,适合快速输出变量值或流程信息。进阶用法:
console.log('User data:', JSON.stringify(user, null, 2))(格式化JSON);util.inspect输出复杂对象:const util = require('util'); console.log(util.inspect(obj, {depth: null}))(显示对象完整结构);NODE_ENV环境变量控制日志级别(如开发环境输出详细日志,生产环境关闭):NODE_ENV=development node app.js。PM2是Node.js生产环境进程管理工具,支持调试模式和日志管理。安装:sudo npm install pm2 -g;
pm2 start app.js --inspect(开启调试模式);pm2 logs(实时输出应用日志),pm2 logs app --lines 100(查看最近100行);pm2 attach app连接到进程,或通过--inspect端口配合Chrome DevTools调试。