
后端中间件
- mysql
- redis
- RabbitMQ
- Nacos
- ElasticSearch
- …
设计模式
nestjs 中用到的适配器设计模式

Nest 内构建复杂对象很多地方都用到了 builder 的设计模式

nestjs 概念图解
请求一般会传递json数据,通过 dto - data transfer object 来接收

- controller 是处理路由和解析请求参数的
业务逻辑处理不在controller中,是在 service 中

- service 是业务逻辑的具体实现,eg:操作数据库
NestJS 有模块划分,每个模块里都包含controller 和 service

为什么是 providers 不是 services 呢?
应为 Nest 实现了一套依赖注入机制,叫做 IoC(Inverse of Control)反转控制。你只需要声明依赖了 什么就行,不需要手动去 new 依赖,NestJS的IoC 容器会自动给你创建并注入依赖。 在 @Module 里的 providers 数据里,是声明要往 IoC 容器里提供的对象,所以叫做 providers。
IoC会自动从容器中查找实例来注入,注入的方式有2种:
- 属性注入 - @Inject 写在属性上的依赖
- 构造器注入 - 写在构造器里的依赖
效果一样,只是注入的时机不一样。

- any module - 没有模块都会包含下面这些内容: – dto - 封装请求参数 – entities - 封装对应数据库表的实体 – controller - 处理路由和解析参数 – module – service - 处理业务逻辑,如:操作数据库
nestjs MVC

controller 接收请求参数,交给model处理 - service 业务逻辑,repository数据库访问,然后,返回View,也就是响应。
AOP机制(Aspect Oriented Programming 面向切面编程) - 在多个请求响应流程中可以复用的逻辑

- Middleware
- Guard
- Interceptor - 记录请求响应时间
- Pipe
- Exception Filter

在目标 controller 的 handler 前后,额外加一段逻辑
学习顺序:
- @nestjs/cli 的使用
- nestjs 核心概念
- 数据库
- orm 框架
- 项目实战