温馨提示×

Debian如何调试Nodejs程序

小樊
50
2026-08-25 11:06:50
栏目: 编程语言

在 Debian 上调试 Node.js 程序,常见做法和 Linux 环境基本一致。下面按从简单到专业的方式给你一个完整指南。


一、准备环境(Debian)

1. 安装 Node.js

推荐使用 NodeSource 或 nvm,避免系统自带的老版本。

方式一:使用 nvm(推荐)

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install --lts
node -v

方式二:直接使用 apt(版本可能较旧)

sudo apt update
sudo apt install nodejs npm

二、基础调试方式

1. console.log(最常用)

适合快速定位问题。

console.log('data:', data);
console.error('error:', err);

✅ 优点:简单
❌ 缺点:不适合复杂逻辑


2. 使用 Node.js 内置调试器

启动调试模式

node inspect app.js

常用命令:

c  # 继续执行
n  # 下一行
s  # 进入函数
o  # 跳出函数
repl # 查看变量

适合命令行调试,但不直观。


三、使用 Chrome DevTools 调试(推荐 ✅)

这是 最常用、最直观 的方式。

1. 启动 Node.js 调试

node --inspect app.js

或暂停在第一行:

node --inspect-brk app.js

输出示例:

Debugger listening on ws://127.0.0.1:9229/...

2. 在 Chrome 中调试

  1. 打开 Chrome
  2. 地址栏输入:
    chrome://inspect
    
  3. 点击 “Open dedicated DevTools for Node”
  4. 设置 localhost:9229

✅ 支持:

  • 断点
  • 变量查看
  • 调用栈
  • 单步调试

四、使用 VS Code 调试(最推荐 ✅✅)

1. 安装 VS Code

sudo apt install code

2. 配置调试

在项目根目录创建 .vscode/launch.json:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Debug Node",
      "program": "${workspaceFolder}/app.js"
    }
  ]
}

3. 使用

  • 设置断点
  • 按 F5
  • 查看变量、调用栈、Watch

✅ 优点:

  • 图形界面
  • 与 Chrome DevTools 功能一致
  • 最常用方式

五、调试 npm 脚本

方法一:node --inspect

node --inspect $(which npm) run dev

方法二:VS Code

{
  "type": "node",
  "request": "launch",
  "name": "npm run dev",
  "runtimeExecutable": "npm",
  "runtimeArgs": ["run", "dev"],
  "skipFiles": ["<node_internals>/**"]
}

六、调试生产环境(进阶)

1. 使用 --inspect=0.0.0.0

node --inspect=0.0.0.0:9229 app.js

⚠️ 注意安全:生产环境调试需限制访问。


2. 使用 ndb(已停止维护,不推荐)


七、常见问题排查

1. 端口被占用

lsof -i :9229
kill -9 PID

2. 调试不生效

  • 确认 Node 版本 ≥ 8
  • 确认 --inspect 已启用
  • 确认防火墙未拦截端口

八、推荐调试组合(总结)

场景 推荐方式
快速定位 console.log
本地开发 VS Code 调试
远程调试 Chrome DevTools
命令行 node inspect

如果你愿意,可以告诉我:

  • 你用的是 Debian 几?
  • 调试的是 Express / Nest / 原生 Node?
  • 是 本地还是服务器?

我可以给你更精确的调试方案。

0 踩