要在 Nest.js 中创建控制器和服务,可以按照以下步骤进行:
1. 创建控制器。
控制器用于处理 HTTP 请求,并返回相应的响应。可以使用 Nest.js CLI 工具来生成基本代码模板。例如,要创建一个名为 `cats` 的控制器,可以在命令行中输入以下命令:`nest g controller cats`。执行该命令后,Nest.js 会自动生成一个 `cats` 控制器的基本代码模板。
2. 添加路由。
在创建好控制器后,需要为它添加路由。路由用于将 HTTP 请求与控制器中的方法相匹配。可以在控制器类中使用装饰器 `@Get()`、`@Post()`、`@Put()`、`@Delete()` 等等。例如,要为 `cats` 控制器添加一个 GET 请求路由,可以在该控制器类中添加以下代码:
“`typescript
import { Controller, Get } from ‘@nestjs/common’;
@Controller(‘cats’)
export class CatsController {
@Get()
findAll(): string {
return ‘This action returns all cats’;
}
}
“`
上面的代码中,`@Controller(‘cats’)` 指定了该控制器的路由前缀为 `/cats`,`@Get()` 指定了该路由为 GET 请求,`findAll()` 方法用于处理该请求并返回响应。
3. 创建服务。
服务用于处理应用程序的业务逻辑。可以使用 Nest.js CLI 工具来生成基本代码模板。例如,要创建一个名为 `cats` 的服务,可以在命令行中输入以下命令:`nest g service cats`。执行该命令后,Nest.js 会自动生成一个 `cats` 服务的基本代码模板。
4. 注入服务。
在控制器中使用构造函数注入服务。例如,要在 `cats` 控制器中注入 `cats` 服务,可以添加以下代码:
“`typescript
import { Controller, Get } from ‘@nestjs/common’;
import { CatsService } from ‘./cats.service’;
@Controller(‘cats’)
export class CatsController {
constructor(private readonly catsService: CatsService) {}
@Get()
findAll(): string {
return this.catsService.findAll();
}
}
“`
上面的代码中,`constructor(private readonly catsService: CatsService)` 使用构造函数注入了 `CatsService`,`findAll()` 方法使用该服务的 `findAll()` 方法来返回响应。