温馨提示×

Ubuntu上Node.js如何进行调试

小樊
48
2025-10-27 03:45:23
栏目: 编程语言

Ubuntu上Node.js调试方法汇总

1. 使用内置调试器(node --inspect)

内置调试器是Node.js原生支持的轻量级工具,无需额外安装软件,适合快速调试基础问题。

  • 步骤1:添加断点
    在需要暂停执行的代码行前插入debugger;语句(如函数入口、关键逻辑处),例如:
    app.get('/', (req, res) => {
      debugger; // 此处暂停
      res.send('Hello World!');
    });
    
  • 步骤2:启动调试模式
    终端运行命令node --inspect your_script.js(替换为实际文件名),启动后会显示调试服务器地址(如Debugger listening on ws://127.0.0.1:9229/...)。
  • 步骤3:连接Chrome调试工具
    打开Chrome浏览器,访问chrome://inspect,在“Remote Target”列表中找到你的Node.js应用,点击“inspect”打开开发者工具。
  • 步骤4:调试操作
    在开发者工具的“Sources”面板中,查看变量值、单步执行(F10/F11)、继续执行(F8)或重启调试(Ctrl+R)。

2. 使用Visual Studio Code(推荐)

VSCode是Node.js开发的常用IDE,内置强大的调试功能,支持断点、变量监视、调用栈分析等,适合复杂项目。

  • 步骤1:安装VSCode
    从官网下载并安装Ubuntu版VSCode。
  • 步骤2:配置launch.json
    打开项目文件夹,点击左侧“Run and Debug”图标(或按Ctrl+Shift+D),点击“create a launch.json file”,选择“Node.js”环境。修改生成的配置文件,指定项目路径:
    {
      "version": "0.2.0",
      "configurations": [
        {
          "type": "node",
          "request": "launch",
          "name": "Launch Program",
          "program": "${workspaceFolder}/your_script.js" // 替换为实际文件名
        }
      ]
    }
    
  • 步骤3:添加断点
    在代码行号左侧点击,添加红色断点(如路由处理函数、业务逻辑入口)。
  • 步骤4:启动调试
    F5或点击“Run and Debug”面板的绿色三角形按钮,VSCode会启动Node.js应用并在断点处暂停。此时可查看变量值、调用栈、监视表达式等。

3. 使用Node-Inspect CLI(进阶)

node-inspect是Node.js官方推荐的命令行调试工具,适合习惯终端操作的用户,支持异步栈跟踪等高级特性。

  • 步骤1:全局安装
    终端运行npm install -g node-inspect安装工具。
  • 步骤2:启动调试
    运行node-inspect your_script.js,终端会进入调试模式,显示debug>提示符。
  • 步骤3:调试命令
    使用以下命令控制调试流程:
    • cont(或c):继续执行到下一个断点;
    • next(或n):单步执行(跳过函数);
    • step(或s):单步进入函数;
    • out(或o):单步跳出函数;
    • repl:进入REPL模式,查看/修改变量值。

4. 使用Chrome DevTools直接调试

通过Chrome浏览器的DevTools调试Node.js,适合需要熟悉浏览器调试界面的用户。

  • 步骤1:启动调试模式
    终端运行node --inspect-brk your_script.js--inspect-brk会在第一行暂停,方便初始调试)。
  • 步骤2:打开DevTools
    浏览器访问chrome://inspect,找到你的应用并点击“inspect”。
  • 步骤3:调试操作
    在“Sources”面板中,通过断点、单步执行等功能调试代码,支持查看DOM、网络请求等(若应用涉及前端交互)。

注意事项

  • 调试时建议关闭生产环境代码中的debugger语句,避免影响正常运行;
  • 对于大型项目,使用VSCode的launch.json配置可简化重复操作;
  • 异步代码调试时,内置调试器和VSCode能更好地跟踪调用栈,比console.log更高效。

0