Node.js在Linux上的调试技巧
Node.js自v6.3.0版本起内置基于Chrome DevTools的调试器,通过--inspect(正常启动并开启调试)或--inspect-brk(启动时在第一行暂停)标志激活。例如:
node --inspect your_script.js # 正常启动调试
node --inspect-brk your_script.js # 第一行暂停
启动后,Node.js会在localhost:9229开启调试端口。打开Chrome浏览器,访问chrome://inspect,点击“Inspect”按钮即可连接,随后可设置断点、查看变量、单步执行(F10/F11)等。
VSCode是Linux下调试Node.js的高效工具,无需额外安装插件(内置支持)。步骤如下:
launch.json,指定入口文件(如"program": "${workspaceFolder}/app.js"),并添加"skipFiles": ["<node_internals>/**"]以忽略Node.js内部文件;F5启动调试,程序会在断点处暂停,支持变量查看、调用栈分析等功能。Chrome DevTools提供图形化界面,适合复杂调试场景。启动Node.js时添加--inspect标志,然后在Chrome中访问chrome://inspect,找到对应的“Remote Target”(如“your_script.js”),点击“Inspect”即可打开DevTools。在DevTools中,可通过“Sources”面板设置断点、查看变量值、执行代码片段(Console),甚至调试异步代码。
对于简单调试,console.log()是最直接的方式,可打印变量值、执行流程(如console.log('Reached step 1:', variable))。若需精准暂停,可使用debugger;语句(需配合node inspect命令):
node inspect your_script.js # 启动调试模式
当执行到debugger;语句时,程序会自动暂停,此时可通过Chrome DevTools或VSCode继续调试(如查看变量、单步执行)。
debug库是轻量级调试工具,适合模块化项目。安装:
npm install debug --save
在代码中引入并使用:
const debug = require('debug')('your_script'); // 'your_script'为命名空间
debug('Debug message: %s', variable); // 输出格式化信息(如“your_script Debug message: value”)
通过环境变量控制调试输出(如DEBUG=your_script node your_script.js),避免无关信息干扰。
npm install -g ndb安装,使用ndb your_script.js启动。npm install -g node-inspector),启动后监听8080端口,通过node --debug your_script.js启动程序,再访问http://localhost:8080/debug?port=9229进行调试(适合旧版本Node.js)。