Skip to content

NestJS 是目前 Node.js 服务端开发中最接近企业级架构的框架。它在代码组织、可维护性和扩展性上是无与伦比的。

1. NestJS 到底解决了什么问题?

在传统的 Express 或 Koa 开发中,代码结构很自由(也就是很乱)。A 开发者喜欢把逻辑写在路由里,B 开发者喜欢写在 Model 里。

NestJS 就像是制定了严格SOP(标准作业程序)的连锁餐厅

  • 强制模块化: 无论谁来写,代码结构都一样。
  • TypeScript 原生支持: 类型安全,减少 bug。
  • 依赖注入(DI): 降低模块间的耦合度(这是核心,后面细说)。

2. 核心概念:餐厅经营法

我们把一个 NestJS 后端应用看作一家**“餐厅”**。

1. Controller (控制器) -> 服务员

  • 职责: 站在门口(路由),负责接收客人的点单(HTTP 请求),并把做好的菜端给客人(HTTP 响应)。
  • 原则: 服务员不应该做菜!不要在 Controller 里写复杂的业务逻辑,只负责“接单”和“上菜”。

2. Service (服务/提供者) -> 大厨

  • 职责: 在厨房里,根据订单把菜做出来(处理业务逻辑,比如算账、去数据库拿数据)。
  • 原则: 大厨只负责做菜,不关心是哪桌客人点的。

3. Module (模块) -> 分店经理

  • 职责: 把服务员(Controller)和大厨(Service)组织在一起,形成一个完整的部门(比如“用户管理部门”或“订单部门”)。
  • 原则: 每个功能块(如 User, Order, Product)都应该有自己的 Module。

4. DTO (数据传输对象) -> 菜单/点菜单

  • 职责: 规定客人能点什么,不能点什么。如果客人点了一个“红烧恐龙蛋”(非法数据),DTO 层直接驳回,不会进厨房。