Skip to content

Node.js 调试与学习资源

Chrome DevTools · VSCode 调试 · 架构组成 · 学习路线 · 资源推荐


一、Chrome DevTools 调试

来源:https://juejin.cn/post/7035954397012033566

原理:V8 Inspector Protocol(Node.js v6.3+)通过 WebSocket 与 Chrome DevTools 交互。

启动方式

bash
# 启动 Node 并开启 inspect(8888 为调试端口)
node --inspect=8888 index.js

# 输出 WebSocket 地址:
# ws://127.0.0.1:8888/xxxx-xxxx-xxxx

进入调试界面的三种方式

方式操作
方式 1访问 http://localhost:8888/json/list,找到 devtoolsFrontendUrl
方式 2Chrome 地址栏输入:devtools://devtools/bundled/inspector.html?experiments=true&ws=127.0.0.1:8888/{uuid}
方式 3(推荐)Chrome 打开 chrome://inspect/#devices,找到对应进程点击 inspect

调试功能:Sources Panel 查看脚本、断点调试、Profile Panel 监测性能等,与浏览器调试体验一致。


二、VSCode 调试

Launch Configuration(配置文件启动)

  1. 打开调试页面 → 添加配置 → 选择 Node.js
  2. 自动生成 .vscode/launch.json
json
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "pwa-node",
      "request": "launch",
      "name": "Launch Program",
      "skipFiles": ["<node_internals>/**"],
      "program": "${workspaceFolder}/index.js"
    }
  ]
}
  1. F5 或点击调试按钮启动

功能:左侧显示当前作用域变量、调用堆栈;右上方支持单步调试、重启等。

Attach to Node Process(附加到运行中的进程)

适用于已启动的 Node 进程,无需配置:

  1. 先启动项目:npm run start
  2. Ctrl+Shift+P(Mac: Cmd+Shift+P)→ 输入 Attach to Node Process
  3. 选择运行中的进程 → 即可调试

三、调试方式对比

方式优点适用场景
Chrome DevTools界面熟悉、功能强大、性能分析需要性能监控或复杂断点
VSCode Launch配置灵活、与编辑器集成日常开发调试
VSCode Attach无需配置、快速附加调试已运行的服务

四、学习资源

来源:https://juejin.cn/post/6961101653709684772

官方与文档

项目说明
nodeNode.js 官方仓库,最权威的学习资源
node-api-cnNode.js API 中文文档

调试与性能分析

项目说明
node-in-debuggingNode.js 调试指南(已出书),涵盖 perf、火焰图、红蓝差分火焰图分析定位问题

最佳实践与深入源码

项目说明
nodebestpracticesNode.js 最佳实践,包含项目结构、异常处理、编码规范、测试、安全等 50+ 条建议
deep-into-node深入理解 Node.js:核心思想与源码分析(libuv、v8),涵盖系统架构、设计模式、性能优化
Nodejs-RoadmapNode.js 学习路线图,侧重服务端技术栈

Node.js 架构组成

Node.js 构成:
├── Node Standard Library  - 标准库(http、buffer、fs、stream 等)
├── Node bindings          - JS 与 C++ 的桥梁,封装下层模块
├── V8                     - Google 开源 JS 引擎(C++ 开发)
├── Libuv                  - 跨平台事件驱动 I/O 库(C/C++)
├── C-ares                 - 异步 DNS 解析库
└── Low-Level Components   - http 解析、OpenSSL、zlib 等

实战项目

项目说明
NeteaseCloudMusicApi网易云音乐 Node.js API,206 个接口,涵盖登录、歌单、搜索、评论等完整流程

资源合集

项目说明
awesome-nodejsNode.js 资源大全,涵盖 HTTP、文件系统、数据库、安全、CLI 等数十个分类

相关