返回
Nest 核心概念:控制器
前端
2023-12-24 04:28:21
在 Nest 系列上一篇中,我们讨论了 Nest 的模块,它是组织 Nest 应用的基本结构。Nest 应用接收请求,交给控制器处理请求,控制器中又调用服务,完成具体的业务逻辑,最后返回结果给调用者。
### 控制器是什么?
控制器是 Nest.js 中用于处理请求和协调数据流向服务(通常是服务的业务逻辑)的类。它充当了应用程序和服务之间的中间层,将请求路由到适当的服务,并处理来自服务的数据。
### 控制器如何工作?
控制器通过使用装饰器注册路由来处理请求。装饰器是一种元数据,可以在类或方法上使用,以提供有关类或方法的其他信息。在 Nest.js 中,有许多内置的装饰器可以用于处理请求,例如 `@Get()`、`@Post()`、`@Put()` 和 `@Delete()`。
当请求到达控制器时,它会根据请求的路由被路由到适当的控制器方法。然后,控制器方法负责处理请求并返回响应。
### 控制器有什么用?
控制器有很多用途,包括:
- 处理请求并协调数据流向服务
- 验证请求数据
- 返回响应给调用者
- 提供与视图的交互
- 实现业务逻辑
### 控制器装饰器
控制器装饰器用于注册路由和提供其他有关控制器的信息。常用的控制器装饰器包括:
- `@Controller()`: 注册控制器
- `@Get()`, `@Post()`, `@Put()` 和 `@Delete()`: 分别用于注册 GET、POST、PUT 和 DELETE 请求的路由
- `@UseGuards()`: 用于注册守卫
- `@UsePipes()`: 用于注册管道
### 控制器路由
控制器路由用于将请求路由到适当的控制器方法。路由可以是简单的字符串,也可以是正则表达式。
### 控制器方法
控制器方法是控制器类中的方法,用于处理请求。控制器方法可以具有不同的装饰器,例如 `@Get()`, `@Post()`, `@Put()` 和 `@Delete()`,以指定它们处理的请求类型。
### 结论
控制器是 Nest.js 中用于处理请求和协调数据流向服务的类。它们通过使用装饰器注册路由,并通过调用服务来处理请求。控制器有很多用途,包括处理请求、验证请求数据、返回响应给调用者、提供与视图的交互以及实现业务逻辑。