Node.js 用单线程 + 事件循环处理并发:I/O 操作不阻塞主线程,回调/异步任务在事件循环中轮转执行。这让 Node 在 I/O 密集型场景表现极佳。
代价是“阻塞事件循环 = 全站变慢”,所以 CPU 密集任务要交给子进程或 worker,避免阻塞。
核心认知:Node 适合 I/O 密集(API、网关、实时),不适合 CPU 密集(重计算需分流)。
Node 后端常用生态。
轻量灵活,生态庞大。
企业级结构、TS 友好。
Prisma/TypeORM 数据层。
JWT、Session、权限中间件。
BullMQ 异步任务处理。
Jest/Supertest 接口测试。
从零到可上线的服务。
吃透 Promise/async-await,避免回调地狱与错误丢失。
轻量用 Express,复杂用 NestJS,配好中间件与错误处理。
选 ORM 建数据模型,事务与连接池配置好。
鉴权、限流、日志、Docker 部署,上线并监控。
两种主流框架对比。
| 维度 | Express | NestJS |
|---|---|---|
| 定位 | 轻量灵活 | 企业级架构 |
| 结构 | 自由 | 模块化规范 |
| TS 支持 | 基础 | 原生友好 |
| 学习曲线 | 低 | 中 |
| 适合场景 | 小中服务/原型 | 复杂业务/大团队 |
同步重计算会阻塞事件循环。用异步 I/O、worker 线程或拆分任务,避免 CPU 密集操作在主线程。
适合 I/O 密集高并发(如 API 网关、聊天)。每个连接开销小,配合集群与负载均衡可水平扩展。
统一错误处理:async 函数用 try/catch,中间件兜底,进程级兜底,避免静默失败。
先 Express 打底理解原理,再学 NestJS 体验企业级组织。两个都会,按项目选。