Как объявить класс контроллером в NestJS?
NestJS — это прогрессивный фреймворк для создания серверных приложений на Node.js, который вдохновлен архитектурными паттернами, такими как MVC (Model-View-Controller). Контроллеры в NestJS отвечают за обработку входящих запросов и возврат ответов. В этом ответе мы рассмотрим, как объявить класс в качестве контроллера в NestJS.
Шаги для создания контроллера
- Создайте новый контроллер. Вы можете создать контроллер вручную или использовать встроенный CLI NestJS для автоматической генерации.
Чтобы создать контроллер с помощью CLI, выполните следующую команду:nest generate controller users
В результате будет создан файлusers.controller.ts
(или.js
, если вы используете JavaScript). - Импортируйте необходимые модули. В вашем контроллере необходимо импортировать декораторы и классы из
@nestjs/common
:import { Controller, Get, Post, Body, Param } from '@nestjs/common';
- Объявите класс контроллера. Используйте декоратор
@Controller()
для объявления вашего класса контроллером. Вы можете передать в этот декоратор строку, которая будет служить базовым маршрутом для этого контроллера.
Например:@Controller('users') export class UsersController { @Get() findAll() { return 'Это возвращает всех пользователей'; } @Get(':id') findOne(@Param('id') id: string) { return `Это возвращает пользователя с id ${id}`; } @Post() create(@Body() userData: any) { return 'Пользователь создан'; } }
Разбор примера кода
- Декоратор
@Controller('users')
: Указывает, что все маршруты в этом контроллере будут начинаться с/users
. - Метод
findAll()
: Обрабатывает GET-запросы по маршруту/users
и возвращает строку с информацией о всех пользователях. - Метод
findOne(@Param('id') id: string)
: Обрабатывает GET-запросы по маршруту/users/:id
, где:id
— это переменная в маршруте, представляющая идентификатор пользователя. Этот метод возвращает строку с конкретным идентификатором пользователя. - Метод
create(@Body() userData: any)
: Обрабатывает POST-запросы на/users
и принимает данные пользователя из тела запроса.
Заключение
Теперь вы знаете, как создать и объявить класс контроллером в NestJS. Контроллеры играют важную роль в обработке запросов и распределении обязанностей между различными частями вашего приложения. Используйте декораторы и методы для определения маршрутов и специфики обработки запросов. Практика в создании контроллеров поможет вам лучше понимать, как работает NestJS и как строить эффективные серверные приложения.