Skip to content

Node.js 核心

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。

1. 核心特性

  • 事件驱动 (Event-driven): 利用 EventEmitter 处理并发。
  • 非阻塞 I/O (Non-blocking I/O): 依赖 libuv 库实现异步操作。
  • 单线程: 主线程单线程,适合 I/O 密集型,不适合 CPU 密集型。

2. 模块系统

  • CommonJS (CJS): Node.js 默认。require / module.exports. 同步加载。
  • ES Modules (ESM): 标准模块。import / export. 异步/静态分析。

3. 异步编程

  • Callback: 错误优先风格 (err, data) => {} (容易导致回调地狱).
  • Promise: 链式调用。
  • Async/Await: 像写同步代码一样写异步代码。

4. 核心模块

  • bttp: 创建服务器。
  • fs: 文件系统操作 (fs.readFile, fs.createReadStream)。
  • path: 路径处理 (path.join, path.resolve)。
  • events: 事件触发器 (EventEmitter)。
  • stream: 流 (Readable, Writable, Duplex, Transform),用于处理大文件。
  • buffer: 处理二进制数据。

5. Event Loop (事件循环)

与浏览器不同,Node.js 的 Event Loop 有 6 个阶段,主要关注:

  1. Timers: setTimeout, setInterval
  2. Poll: I/O 回调
  3. Check: setImmediate

(注意:Node 11+ 后行为与浏览器趋同,微任务在宏任务间隙执行)

6. 常用框架

  • Express: 极简、灵活、中间件 (线性模型)。
  • Koa: 由 Express 原班人马打造,基于 async/await,洋葱模型中间件。
  • NestJS: TypeScript 支持,通过装饰器、依赖注入提供类似 Angular/Spring 的架构,适合大型企业级应用。

MIT Licensed | Keep Learning.