Node.js 系列承接 JavaScript 系列,重点解释 JavaScript 进入服务端宿主环境后,代码、任务、数据和资源如何运行。这里仅记录知识地图;具体文章的范围、版本和实验在写作时再确定。
核心问题
- JavaScript 代码如何被 Node.js 加载和执行?
- 异步 I/O 如何被调度,结果如何回到 JavaScript?
- 字节、文件、网络和进程资源如何流动与释放?
- 一个长期运行的服务如何处理并发、错误、退出和故障?
知识地图
Node.js
├── 运行时基础
│ ├── Node.js、V8、libuv 与操作系统
│ ├── CommonJS、ESM 与模块加载
│ ├── 事件循环与异步 I/O
│ └── EventEmitter
├── 数据与 I/O
│ ├── Buffer 与字符编码
│ ├── 文件、路径与资源生命周期
│ ├── Stream 与背压
│ └── HTTP 请求生命周期
├── 进程与并发
│ ├── process、配置与 signal
│ ├── Worker Pool、Worker Threads 与子进程
│ ├── 错误传播与优雅退出
│ └── 内存、延迟与故障诊断
└── 服务工程
├── 输入校验、超时、取消与重试
├── 数据库连接、事务与幂等
├── 状态、缓存与多实例边界
├── 身份认证、授权与敏感信息
└── 测试、可观测性与运行交付
推荐推进顺序
- 先建立运行时、模块和事件循环的总模型。
- 再沿 Buffer、文件、Stream 和 HTTP 理解数据与资源流动。
- 然后进入进程、并发、错误退出和诊断。
- 最后扩展到数据库、状态、安全、测试和部署等服务工程问题。
项目案例与边界
- 当前博客适合作为文件读取、Markdown 转换、HTTP API、PostgreSQL 和进程启动的综合案例。
- 模块系统、事件循环、Stream 和 Worker Threads 更适合使用独立小实验。
- Node.js 系列负责运行时、传输和资源语义;Next.js 系列只解释框架如何映射这些能力。
- 不重复 JavaScript 系列已经建立的语言语义,也不把浏览器事件循环或 Web Worker 直接套用到 Node.js。