Node.js 开发手册NODE.JS

HANDBOOK九主题系统性学习路径

从事件循环
到生产部署

一套面向工程的 Node.js 学习手册:模块系统、事件循环、异步范式、npm 包管理、Web 后端、数据层、测试、TypeScript 工程化、性能与部署,全部基于 Node.js 20 LTS(含 ESM 与内置 test runner)。

从第一章开始 9 章难度入门到高阶 约18+学时Node.js 20 LTS
00

学习路径:四个层次

九大主题自底向上:先吃透运行时与异步模型,再掌握工程化与 Web,最后用测试、类型与部署把服务推向生产。

基础层

运行时与模块

事件循环、CommonJS/ESM、Buffer、process、流与事件,理解单线程为何能扛高并发。

工程层

包与类型

npm/语义化版本、依赖管理、TypeScript 工程化,让项目可维护、可协作。

应用层

Web 与数据

Express/Fastify 路由中间件、数据库与 ORM、连接池与事务,落地真实后端。

生产层

质量与性能

单测/集成/E2E、cluster 与 worker_threads、流、诊断与容器化部署。

目录

九大主题

每一章都是一份完整的知识地图:概念讲解、可运行代码、常见陷阱、实战练习与延伸资源。

01

Node.js 与语言基础BASICS

模块系统(CommonJS/ESM)、全局对象、Buffer、事件、process 与执行模型。

ESMBuffer事件process
阅读 →入门 · 约 2 小时
02

事件循环与异步EVENT LOOP

事件循环阶段、宏任务/微任务、timers/I/O/check 阶段、setTimeout 与 setImmediate。

Event Loop微任务阶段libuv
阅读 →进阶 · 约 2.5 小时
03

异步编程范式ASYNC

回调、Promise、async/await、错误传播、Promise 组合(all/race/allSettled)与取消。

Promiseasync错误组合
阅读 →进阶 · 约 2 小时
04

npm 与包管理PACKAGING

package.json、语义化版本、依赖类型、npx、workspaces 与发布流程。

npmsemvernpxworkspaces
阅读 →中级 · 约 1.5 小时
05

Web 后端框架WEB

HTTP 基础、Express/Fastify、中间件、路由、Koa 与请求生命周期。

ExpressFastify中间件路由
阅读 →中级 · 约 3 小时
06

数据层与数据库DATA

SQLite/PostgreSQL/Mongo、ORM(Prisma/Sequelize)、连接池、事务与迁移。

Prisma连接池事务迁移
阅读 →中级 · 约 2.5 小时
07

测试TESTING

内置 test runner、Jest/Vitest、supertest 集成测试、mock 与覆盖率。

JestVitestsupertest覆盖率
阅读 →中级 · 约 2 小时
08

TypeScript 工程化TYPESCRIPT

tsconfig、类型系统、与 Node 集成、装饰器、tsx/ts-node 与类型安全 API。

tsconfig类型装饰器tsx
阅读 →进阶 · 约 2 小时
09

性能与部署PERFORMANCE

cluster、worker_threads、Stream、PM2、Docker、诊断(perf_hooks/0x)与监控。

clusterworkerStreamDocker
阅读 →高阶 · 约 2.5 小时
指南

推荐的使用方法

1

准备运行时

用 nvm 安装 Node.js 20 LTS,确认 node -v 与 npm -v,熟悉 REPL 与 --watch。

2

按序阅读,边读边跑

每章示例都可直接运行。建议每章建一个独立目录,把示例逐一跑通并修改观察输出。

3

完成章末练习

章末实战清单是检验掌握程度的标准。完成练习比多读一遍文档更有价值。

4

做自己的服务

把第五、六章改造成你领域内的 API,用第七至九章补上测试、类型与部署,形成可上线的项目。

准备

环境准备

本手册基于 Node.js 20 LTS。推荐用 nvm 管理多版本,避免污染系统全局。

# 1. 安装 nvm 后用它装 Node 20 LTS
nvm install 20
nvm use 20
node -v            # v20.x.x

# 2. 初始化一个 ESM 项目
mkdir my-api && cd my-api
npm init -y
# 在 package.json 加入:"type": "module"

# 3. 用 --watch 热重载运行
node --watch index.js

# 4. 进入 REPL 快速验证语法
node
> 1 + 1
2
ESM 还是 CommonJS

本手册新示例默认 ESM(import/export),需在 package.json 设置 "type": "module"。老代码与大量 npm 包仍用 CommonJS(require/module.exports)。两者可通过 .mjs / .cjs 扩展名混用,各章会标注差异。

版本选择

生产优先 LTS(偶数大版本,如 18/20/22)。--experimental-* 前缀的 API 可能在升级后变动,落地前先查当前版本的官方文档。