⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

🟢 Node.js 学习路线

135 个互动教程

Node.js 入门

创建 HTTP 服务器

NPM 包管理器 — 管理项目依赖

学习 npm 的基本用法:初始化项目、安装包、理解 package.json

Node.js 文件系统 — 读写文件

用 fs 模块读写文件、创建目录、查看文件信息

Node.js HTTP

学习HTTP模块

Node.js path 模块 — 路径处理

掌握路径拼接、解析、规范化,避免跨平台路径问题

Node.js OS 模块 — 系统信息

获取 CPU、内存、网络接口等操作系统信息

Node.js URL 解析

解析 URL 的各组成部分:协议、主机、路径、查询参数

Node.js DNS 解析

用 dns 模块查询域名对应的 IP 地址

Node.js process 对象 — 进程信息与控制

获取命令行参数、环境变量、控制进程退出

Node.js readline — 命令行交互

创建命令行问答界面,读取用户输入

Node.js 环境变量

学习环境变量

Express 快速搭建 Web 服务

用 Express 框架轻松创建 REST API,处理路由、请求参数、中间件

Node.js Crypto — 加密与哈希

用 crypto 模块进行数据加密、生成哈希、HMAC 签名

Node.js Cluster — 多进程利用多核 CPU

用 cluster 模块创建多个工作进程,充分利用多核 CPU 性能

Node.js 子进程 — 执行系统命令

用 child_process 模块执行 shell 命令、Python 脚本等外部程序

Node.js Net 模块 — TCP 网络编程

用 net 模块创建 TCP 服务器和客户端

Node.js zlib — 压缩与解压

用 gzip/deflate 压缩数据,减少传输体积

Node.js RESTful API 设计

Express 构建标准 REST API,CRUD + 状态码

Node.js 调试技巧

console/ndb/VS Code 调试器/--inspect

Node.js JWT 认证

jsonwebtoken 签发/验证/bcrypt 密码哈希

Node.js Worker Threads 工作线程

Worker Threads:new Worker()创建、parentPort通信、MessageChannel双向通道、SharedArrayBuffer共享内存、与child_process fork区别、CPU密集型任务并行

Node.js 原生测试运行器

Node.js 18+ Test Runner:node:test模块、describe/it/test、assert断言、--test-reporter输出、与Mocha/Jest对比、代码覆盖率实验性支持

Node.js Performance Hooks 性能监控

Performance测量:perf_hooks.performance.now()高精度时间、PerformanceObserver监听性能条目、trace_events追踪异步操作、与Async Hooks配合诊断

Express.js 进阶

Express进阶:自定义中间件模式(错误处理/请求日志/限流)、Router模块化路由、app.set/app.get配置、trust proxy代理信任、与Fastify性能对比

Fastify 高性能 Web 框架

Fastify框架:JSON Schema请求验证、Plugin插件系统、fastify-middie中间件兼容、序列化优化(fast-json-stringify)、比Express快2-5倍的原生基准测试

Prisma ORM 深入

Prisma深入:Prisma Schema数据模型、Prisma Client类型安全查询、Prisma Migrate数据库迁移、Prisma Studio可视化管理、与TypeORM/Sequelize对比

Node.js JWT 认证实战

JWT认证实战:jsonwebtoken签发/验证、access token + refresh token双令牌模式、token刷新策略、黑名单撤销、Cookie httpOnly存储、与OAuth2.0对比

Node.js Event Loop 深入

Event Loop深入:6个阶段(timers/pending callbacks/idle,prepare/poll/check/close callbacks)、nextTick微任务优先、setImmediate vs setTimeout(fn,0)、libuv线程池与阻塞操作

Node.js Cluster 集群

Node.js Cluster:cluster.fork()创建子进程、IPC进程间通信、共享端口(master分发/竞争监听)、优雅重启(zero-downtime restart)、PM2基于Cluster实现

Node.js Bull 任务队列

Bull任务队列(基于Redis):Queue.add添加任务、Worker.process处理、延时任务/delayed、重试策略attempts/backoff、事件监听(completed/failed/stalled)、Bull Board监控面板

Node.js fs 文件系统深入

Node.js fs深入:fs/promises异步API、流式读写大文件createReadStream/createWriteStream、fs.watch文件监视、文件锁flock、临时文件fs.mkdtemp、跨平台路径分隔符处理path.sep

Node.js child_process 子进程

Node.js子进程:exec/spawn/execFile/fork四种方式对比、stdio管道(stdin/stdout/stderr)、Shell vs no-shell、超时timeout/killSignal、跨平台注意事项(Windows cmd/Unix bash)

Node.js TLS/SSL

Node.js TLS模块:tls.createServer创建TLS服务器(key/cert/ca/passphrase)、tls.connect创建TLS客户端、ALPN协商应用层协议(h2/http1.1)、SNI服务器名称指示多证书

Node.js VM 沙箱

Node.js VM沙箱:vm.runInNewContext沙箱执行代码(受限Global对象/无Node API访问)、vm.Script预编译脚本重复执行、vm.createContext创建上下文、安全警告(沙箱逃逸风险/不用于运行不可信代码)

Node.js assert 断言

Node.js assert断言模块:assert(cond)/assert.ok、assert.strictEqual/deepStrictEqual(使用===而非==)、assert.throws/rejects测试异常、assert.ifError、assert.fail/assert.match/assert.doesNotMatch、严格断言模式strict assertion mod

Node.js 手写 HTTP 服务器

Node.js http模块手写HTTP Server:http.createServer((req,res)=>...)创建、req.url/req.method/req.headers请求信息获取、res.writeHead/ res.end响应、解析POST请求体(data+end事件拼接Buffer)、路由分发(if req.url==='/path')、静态文件serve(fs.crea

Node.js npm scripts 脚本

npm scripts深入:package.json scripts字段、pre/post生命周期钩子(prestart/poststart/prebuild/postbuild)、&&串行/&并行(npm-run-all/concurrently)、环境变量($npm_package_version/process.env.npm_*/cross-env)、npx执行未安装的包

Node.js 调试技术

Node.js调试:node --inspect开启Chrome DevTools调试/node --inspect-brk首行断点、VS Code launch.json配置Attach/Launch、debugger语句程序内断点、ndb(Google Chrome团队Node调试器)、console.trace打印调用栈/console.time计时/console.assert断言/con

Node.js 安全最佳实践

Node.js安全清单:helmet设置安全HTTP头、express-rate-limit限流防暴力破解、cors配置白名单、express-validator输入验证(防XSS/SQL注入/命令注入)、bcrypt密码哈希(不做MD5/SHA)、dotenv管理密钥不泄露(不要提交git)、npm audit检查依赖漏洞、helmet/csurf防CSRF、express-session安全配

Node.js AbortError 异常处理

AbortError异常模式:AbortController+AbortSignal配合fetch/stream/timers取消操作、AbortError被fetch抛出、检查error.name==='AbortError'区分取消vs其他错误、与setTimeout+AbortSignal实现超时取消模式

Node.js EventEmitter 深入

events模块EventEmitter深入:on/once/addListener/removeListener/removeAllListeners/off、emit触发、setMaxListeners/ getMaxListeners最大监听器限制、error事件特殊(没监听error事件时emit触发throw)、captureRejections捕获async listener异常、Ev

Node.js Performance 计时 API

Node.js高精度计时API:performance.now()亚毫秒精度单点计时、performance.mark(name)/measure(name,start,end)命名标记和测量、performance.timerify(fn)包装函数自动计时、与process.hrtime.bigint()比较(hrtime单调时钟不受系统时间调校影响)

Node.js HTTP Agent 连接池

Node.js http.Agent连接池:maxSockets/maxFreeSockets控制最大并发连接、keepAlive长连接复用减少TCP握手、Agent作用于http.request/https、连接池对高并发请求性能影响

Node.js 弃用 API 处理

Node.js弃用API管理:util.deprecate包装函数标记弃用(可选code标识)、process.emitWarning('msg','DeprecationWarning',code)、--pending-deprecation/--throw-deprecation CLI标志控制弃用行为、LIST_OF_DEPRECATED_APIS在Node文档中查看、迁移弃用API策略

Node.js 全局对象深入

Node.js全局对象:global/globalThis(跨JS环境)、__dirname/__filename(CommonJS)、process(进程信息/环境变量/退出/信号/Buffer/console/定时器)/URL/URLSearchParams/TextEncoder/TextDecoder/navigator.language(18+)、require/module/expor

Node.js WASI 运行 WebAssembly

Node.js WASI(WebAssembly System Interface/WASI API在Node中运行Wasm):WASI类初始化、通过wasi实例+importObject启动Wasm模块、WASI Preview 1和Preview 2组件模型

Node.js 模块系统 — CommonJS 与 ES Modules

Node.js模块系统:require/module.exports(CommonJS)vs import/export(ESM)、模块缓存、__dirname/__filename、package.json的type字段

Node.js Stream 流:高效处理大数据

学习如何使用 Node.js Stream API 处理大文件和数据流,提升应用性能。

Node.js Buffer:处理二进制数据

掌握 Buffer 类,在 Node.js 中高效处理二进制数据。

Node.js http 模块构建Web服务器

Node.js原生http模块:createServer创建服务器、request/response对象、路由处理、JSON响应、静态文件服务。对比Express框架

Node.js 事件循环:理解异步机制

深入剖析事件循环的各个阶段,掌握异步代码执行顺序。

Node.js 微任务:nextTick 与 Promise

区分微任务队列与宏任务队列,优化异步代码执行顺序。

Node.js Worker 线程:并行处理 CPU 密集型任务

使用 worker_threads 模块创建多线程,突破单线程瓶颈。

Node.js 数据库操作 — MySQL

Node.js连接MySQL:mysql2/promise库、连接池createPool、预处理语句防注入、CRUD操作、事务处理、批量插入

Node.js 性能分析:识别并解决瓶颈

学习使用内置工具和第三方库分析 Node.js 应用性能。

Node.js JWT 认证实战

Node.js JWT认证:jsonwebtoken库生成/验证Token、bcrypt密码加密、登录注册接口、认证中间件、Token刷新机制

Node.js 安全最佳实践:保护你的应用

掌握输入验证、防注入、HTTPS 等核心安全措施。

Node.js 文件上传 multer

Node.js文件上传:multer中间件、单文件/多文件上传、文件大小限制、文件类型过滤、存储到本地/云存储、进度反馈

Node.js GraphQL:构建灵活的 API

使用 Apollo Server 创建类型安全的 GraphQL API。

Node.js WebSocket 实时通信

Node.js WebSocket:ws库创建WebSocket服务器、连接/消息/关闭事件、广播消息、心跳检测、简易聊天室实现

Node.js WebSocket:实时双向通信

使用 ws 库实现 WebSocket 服务器与客户端实时交互。

Node.js 定时任务 node-cron

Node.js定时任务:node-cron库、cron表达式语法、定时备份数据库、定时发送邮件、定时清理日志、与PM2配合

Node.js 部署:生产环境最佳实践

学习使用 PM2、Docker 和 Nginx 部署 Node.js 应用。

Node.js Stream 流:高效处理大数据

学习如何使用 Node.js Stream 以流式方式处理大文件,提升内存效率。

Node.js Buffer:二进制数据操作详解

深入理解 Node.js Buffer 类,学习如何操作二进制数据。

Node.js 环境变量管理 dotenv

Node.js环境变量:process.env、dotenv库加载.env文件、.env.example模板、不同环境配置(development/production/test)、cross-env跨平台、敏感信息管理

Node.js 事件循环:理解异步非阻塞 I/O

掌握 Node.js 事件循环机制,理解 setTimeout、setImmediate、process.nextTick 的执行顺序。

Node.js 微任务:Promise 与 process.nextTick

深入理解微任务队列,掌握 Promise.then 和 process.nextTick 的执行时机。

Node.js Worker 线程:实现真正的并行计算

学习使用 worker_threads 模块创建多线程,处理 CPU 密集型任务。

Node.js 流式处理

学习如何使用 Node.js Stream 处理大数据,实现高效的数据流读写与转换。

Node.js Stream 流:高效处理大数据

学习如何使用 Node.js 的 Stream 接口以流式方式处理大文件与数据管道。

Node.js Buffer:二进制数据操作

掌握 Buffer 类的创建、读写、编码转换及实际应用场景。

Node.js 事件循环:阶段与顺序

深入理解事件循环的六个阶段以及 timers、poll、check 队列的执行顺序。

Node.js 微任务:process.nextTick 与 Promise

区分微任务(Microtask)与宏任务(Macrotask),掌握它们在事件循环中的执行时机。

Node.js Worker 线程:多线程并行计算

使用 worker_threads 模块创建独立线程,实现 CPU 密集型任务的并行处理。

深入理解背压机制与自定义流实现

揭秘Node.js流内部背压控制原理,手写可读/可写/转换流

使用Node-API绑定C库的完整实战

不依赖node-gyp,通过Node-API直接调用系统级C函数

弱引用与细粒度依赖注入容器

利用WeakRef和FinalizationRegistry实现自动清理的DI容器

V8 TurboFan JIT优化破译与字节码分析

通过--print-opt-code和--trace-turbo分析函数优化编译过程

基于io_uring的零拷贝文件服务器

绕过libuv,直接在Node.js中使用Linux io_uring实现异步IO

Worker Threads共享内存与原子操作

使用SharedArrayBuffer和Atomics实现无锁数据传输

实现类HAProxy的HTTP请求分发器

在Cluster模块上构建加权轮询、最小连接数和一致性哈希

使用AsyncLocalStorage实现全链路追踪

不依赖OpenTelemetry,手动实现跨异步操作的请求ID传递

Node.js策略模块与依赖完整性验证

使用内置policy模块实现模块白名单和内容哈希校验

WASI Preview2运行时:在Node.js中运行WebAssembly系统应用

使用Node.js WASI实现文件系统、随机数、时间等系统调用

AbortController 与可读流的优雅取消机制

深入 AbortController 在 Web Streams API 中的应用,实现可读流、fetch 请求及异步迭代器的统一取消。

Worker Threads 的 TransferList 零拷贝通信

利用 transferList 将 ArrayBuffer 所有权在线程间转移,避免序列化开销,实现高性能数据交换。

Diagnostics Channel 结合 Async Hooks 追踪请求全链路

使用 diagnostics_channel 发布自定义事件,配合 Async Hooks 追踪异步资源的生命周期,实现请求级别的完整追踪。

利用 Policy 机制实现模块加载的完整性校验

通过 --experimental-policy 创建策略文件,限制模块来源、哈希校验和权限,防止供应链攻击。

EventTarget 自定义事件模拟 Observable 模式

不使用 RxJS,基于 Node.js 的 EventTarget 实现简易的 Observable,支持 map、filter、pipe 操作。

Module sync hook 在静态分析中的隐秘应用

利用 module.syncBuiltinESMExports 和内置模块的同步钩子,在运行时注入新 API 而不修改源代码。

WebAssembly 内存操作与 WASI 自定义 I/O 插件

编译 C 代码为 Wasm,通过 WASI 接口在 Node.js 中实现自定义文件系统,绕过传统 fs 限制。

V8 Serializer 自定义类编码与远程过程调用

利用 v8.serialize 和 v8.deserialize 的 customizer 钩子,实现自定义类的深度克隆与跨进程 RPC 传输。

Inspector Session 与调试协议实现动态代码热更新

通过 inspector 模块连接 V8 调试协议,在不重启进程的情况下替换函数实现、修改变量。

TLS 会话复用与预生成密钥的零 RTT 方案

利用 TLS 会话 ID 和预生成主密钥,实现客户端与服务端之间的 0-RTT 连接,大幅降低握手延迟。

Node.js 内存泄漏实战:使用 Clinic.js 分析堆快照

深入讲解如何利用 Clinic.js 工具进行内存泄漏检测与堆快照分析,涵盖事件循环延迟、GC 行为等高级调试技术。

Node.js 原生扩展:使用 napi-rs 构建 Rust 模块

探索如何用 Rust 编写 Node.js 原生插件,对比 node-gyp 与 napi-rs 的优势,实现高性能计算模块。

诊断通道:构建 Node.js 应用内部监控系统

利用 Diagnostics Channel API 实现应用级事件追踪,无需修改第三方库即可监控异步操作、数据库查询等内部行为。

Worker Threads 进阶:构建多阶段流水线任务处理

超越基础用法,设计线程池与消息传递机制,实现 CPU 密集型任务的流水线处理(类似 Gulp 风格)。

QUIC 与 HTTP/3:在 Node.js 中实验下一代传输协议

利用 Node.js 实验性 QUIC 支持构建低延迟应用,对比 TCP+HTTP/2 的优势,实现多路复用与 0-RTT。

密码学实战:实现 Shamir 秘密共享算法

使用 Node.js crypto 模块构建 (t, n) 门限秘密共享系统,涉及有限域运算与拉格朗日插值。

深入 llhttp:定制 HTTP 解析器实现专有协议

学习 Node.js 底层 HTTP 解析器 llhttp 的原理,并基于它构建自定义的二进制协议解析器。

事件循环微观:利用 timing 阶段实现精确调度

深入 Node.js 事件循环的六个阶段,利用 timers、pending callbacks 等实现微秒级任务调度与延迟控制。

抽象语法树手术:用 Node.js 编写 Babel 插件修改代码

学习利用 AST 工具(如 @babel/parser)分析 JavaScript 代码,并编写插件自动插入性能埋点或转换语法。

SQLite VFS 定制:在内存文件系统或云存储上运行数据库

利用 better-sqlite3 的 VFS 接口,创建自定义虚拟文件系统驱动,实现加密、压缩或基于 S3 的数据库存储。

V8 代码缓存与编译优化

深入 V8 引擎的代码缓存机制,学习如何利用编译缓存提升 Node.js 应用启动速度。

Node.js FFI 与原生系统调用

绕过 libuv,直接使用 ffi-napi 调用操作系统底层 API,实现极客级系统编程。

定制事件循环调度器

通过 libuv 钩子劫持 Node.js 事件循环,实现自定义任务调度与优先级控制。

跨线程共享内存与无锁编程

利用 SharedArrayBuffer 和 Atomics 在 Worker 线程间实现高性能无锁数据结构。

V8 启动快照与自定义反序列化

创建并加载 V8 自定义快照,实现 Node.js 应用的即时启动。

堆快照分析与内存泄漏侦探

使用 V8 堆分析 API 编写自动内存泄漏检测工具。

诊断通道与分布式追踪

基于 diagnostics_channel 构建全链路追踪系统,监控异步操作生命周期。

内置 SQLite VFS 与自定义虚拟文件系统

利用 Node.js 的 better-sqlite3 实现自定义 VFS,将数据库存储在内存或云存储中。

TLS 会话恢复与中间人加速

通过 TLS 会话 ID 和会话票证,实现 HTTP/2 连接的零往返恢复。

N-API 线程安全函数与异步工作队列

编写 Node.js 原生插件,使用 N-API 实现非阻塞的 CPU 密集型任务。

V8 沙盒模式与内存快照分析

探索 Node.js 21+ 的 V8 沙盒隔离机制,结合 heap snapshot 分析内存泄漏的微观模式。

重写 Libuv 线程池调度算法

通过 C++ 插件劫持 Libuv 线程池,实现基于优先级的任务调度(非公平队列)。

基于 AsyncLocalStorage 的跨安全域追踪器

构建一个穿越异步边界的跟踪系统,并集成权限检查(跨 vm 模块与 worker_threads)。

WebAssembly GC 与 JavaScript 终结器协作

在 Node.js 中让 WASM 分配的对象自动注册 FinalizationRegistry,实现跨运行时内存回收。

可读流背压可视化与动态调节器

用 Performance API 测量流内部缓冲区水位,并动态调整 highWaterMark 避免溢出或饥饿。

V8 堆栈追踪符号化与内联恢复

解析 V8 原生 C++ 堆栈帧,将混淆的符号名映射回 JavaScript 函数名(包括被优化掉的函数)。

基于 Protocol Buffers 的 Cluster IPC 协议协商

在 Node.js cluster 主从进程间,用 protobuf 定义动态 schema 实现类型安全的双向 RPC。

集成抗量子密码的 TLS 自定义密码套件

在 Node.js 中注册 NIST 标准化的 CRYSTALS-Kyber 算法作为 TLS 密钥交换,使用原生插件绕过 OpenSSL 限制。

微任务优先级队列与事件循环节流

利用 queueMicrotask 与自定义微任务调度器,构建可抢占的微任务优先级系统,避免长微任务阻塞事件循环。

将 Node.js 作为嵌入式引擎集成到 Rust 宿主

使用 napi-rs 将 Node.js 运行时嵌入 Rust 二进制,并通过 FFI 暴露宿主函数与 JavaScript 双向调用。

Node.js 文件系统与流的内核:直接操作文件描述符与零拷贝

超越 fs.readFile 与 fs.createReadStream,深入文件描述符 (fd)、低级 I/O 以及基于 Buffer 的零拷贝流实现。

Event Loop 核心:微任务队列与未处理的 Promise 拒绝陷阱

深入 V8 微任务队列与 libuv 阶段交互,揭示未处理拒绝 (unhandledRejection) 的触发时机及内存泄漏场景。

高级 Worker Threads:可转移对象与共享内存原子操作

不再只是 postMessage 字符串,而是使用 ArrayBuffer 转移 (transferable) 与 SharedArrayBuffer 实现真正的无锁数据交换。

原生插件实战:使用 N-API 为 Node.js 编写 C++ 绑定

脱离 node-gyp 恐惧,用 N-API (node-api) 创建线程安全函数,在原生代码中调用 JS 回调。

Cluster 进阶:HTTP 请求亲缘性与共享端口策略

利用 cluster 模块实现粘性会话 (sticky sessions) 与自定义负载均衡,超越默认的 round-robin。

流的高级背压:构建自定义可写流与转换流的水位线控制

深入 stream 内部状态,实现自己的 highWaterMark 逻辑,以及基于背压的速率限制器。

TLS/SSL 会话恢复:减少握手开销的服务器端实现

使用 TLS 会话 ID 与会话票证 (session ticket) 在 Node.js 中实现无缝重连,提升 HTTPS 性能。

子进程的多路复用:用单个 IPC 通道传输多个逻辑流

突破 child_process stdio 限制,通过自定义协议在父子进程间复用多个虚拟通道。

Async Hooks 深潜:追踪所有异步资源的生存期与关联

利用 async_hooks 模块监控 Promise、Timeout、TCPSocket 等异步资源的创建与销毁,实现全链路追踪。

V8 Inspector 协议:用 Node.js 自定义调试器与性能分析器

通过 WebSocket 连接 V8 Inspector,发送 CDP (Chrome DevTools Protocol) 命令,实现自定义断点、CPU 剖析。

🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 135 篇
0 完成
🔥 0