阅读量:3
Debian上Node.js应用调试指南
一 核心方法与常用命令
- 使用 Node.js 内置检查器启动应用:开发时推荐用 –inspect,需要在入口处暂停时用 –inspect-brk。默认调试端口为 9229。示例:
- 启动并在断点处暂停:node --inspect-brk app.js
- 启动并允许远程调试:node --inspect=0.0.0.0:9230 app.js
- 连接调试前端:
- 在 Chrome 打开 chrome://inspect,点击 Open dedicated DevTools for Node 或目标下的 inspect 进入调试界面。
- 代码中插入 debugger; 语句,配合 –inspect 可在指定位置中断。
- 使用 console.log/debug 模块输出关键变量与执行流,便于快速定位问题。
二 使用 VS Code 调试
- 启动配置(.vscode/launch.json):
- 直接启动应用(适合开发):
{
“version”: “0.2.0”,
“configurations”: [
{
“type”: “node”,
“request”: “launch”,
“name”: “Launch Program”,
“program”: “${workspaceFolder}/app.js”,
“env”: { “NODE_ENV”: “development” },
“skipFiles”: [“
/**”] } ] } - 附加到已启动的调试进程(适合调试 npm 脚本、守护进程等): { “version”: “0.2.0”, “configurations”: [ { “type”: “node”, “request”: “attach”, “name”: “Attach to Node”, “port”: 9229, “protocol”: “inspector” } ] }
- 直接启动应用(适合开发):
{
“version”: “0.2.0”,
“configurations”: [
{
“type”: “node”,
“request”: “launch”,
“name”: “Launch Program”,
“program”: “${workspaceFolder}/app.js”,
“env”: { “NODE_ENV”: “development” },
“skipFiles”: [“
- 操作要点:在代码行号左侧点击设置断点,按 F5 启动;使用 F10/F11 单步跳过/进入;必要时在配置中设置 skipFiles 忽略 node_internals。调试 npm scripts(如 npm run dev)可将 request 设为 launch 并在 runtimeArgs 中传入 –inspect-brk。
三 远程与服务器场景
- 服务器本机调试:使用 –inspect=127.0.0.1:9229 限制监听地址,避免外网访问;在本地机器通过 chrome://inspect 或 VS Code attach 连接 localhost:9229。
- 跨机调试:在服务器启动 node --inspect=0.0.0.0:9229 app.js,并在防火墙放行 9229;本地 Chrome/VS Code 连接服务器的 <服务器IP>:9229。出于安全,建议仅在受信网络中开放调试端口。
- 无图形界面环境:使用 node inspect app.js 进入命令行调试;或在 VS Code 中 attach 到远程端口进行图形化调试。
四 常见问题与进阶技巧
- 端口被占用:检查是否已有 Node 调试进程占用 9229(或自定义端口),必要时更换端口或结束旧进程后再启动。
- 断点不生效:确认以 –inspect/–inspect-brk 启动;使用 debugger; 语句需配合检查器;VS Code 中确保未过滤 node_internals 导致源码不可见。
- 源码映射与依赖调试:调试 node_modules 或打包工具时,直接对可执行脚本启动调试,例如:
- npm 脚本:“build:debug”: “node --inspect-brk ./node_modules/webpack/bin/webpack.js”
- 然后 npm run build:debug 并在 chrome://inspect 或 VS Code 中连接。
- 性能与内存问题:使用 0x、clinic.js 等进行 CPU/内存剖析;生产问题可采集堆快照并用 llnode 分析。
- 日志与命名空间:使用 debug 模块并设定 DEBUG=namespace 环境变量,按需输出不同模块日志,避免 console.log 泛滥。
以上就是关于“Debian上Node.js应用如何调试”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm