请解释 NestJS 的控制器 (Controllers) 的概念和用法。如何创建和使用控制器?

推荐答案

控制器的概念

在 NestJS 中,控制器(Controllers)负责处理传入的 HTTP 请求并返回响应。控制器是 NestJS 应用程序的核心部分,它们定义了路由和处理程序方法,这些方法处理特定的 HTTP 请求(如 GET、POST、PUT、DELETE 等)。

控制器的创建

要创建一个控制器,可以使用 NestJS 提供的装饰器 @Controller()。这个装饰器接受一个可选的路由前缀参数,用于定义该控制器下的所有路由的基础路径。

-- -------------------- ---- -------
------ - ----------- --- - ---- -----------------

-------------------
------ ----- -------------- -
  ------
  ---------- ------ -
    ------ ----- ------ ------- --- ------
  -
-

控制器的使用

在上述代码中,@Controller('cats') 定义了一个基础路径为 /cats 的控制器。@Get() 装饰器定义了一个处理 GET 请求的路由,当访问 /cats 时,findAll 方法将被调用并返回字符串 'This action returns all cats'

本题详细解读

控制器的职责

控制器的主要职责是处理 HTTP 请求并返回响应。它们通常包含多个路由处理程序方法,每个方法对应一个特定的 HTTP 请求方法和路径。

路由处理程序方法

路由处理程序方法使用 HTTP 方法装饰器(如 @Get()@Post()@Put()@Delete() 等)来定义它们处理的请求类型。这些装饰器可以接受一个路径参数,用于定义具体的路由路径。

请求和响应对象

在 NestJS 中,控制器方法可以访问请求和响应对象。这些对象可以通过装饰器注入到方法中。

依赖注入

NestJS 支持依赖注入,控制器可以通过构造函数注入服务(Services)或其他依赖项。

总结

通过使用控制器,开发者可以轻松地定义和管理应用程序的路由和请求处理逻辑。NestJS 的控制器机制使得构建 RESTful API 变得更加简单和高效。

纠错
反馈