Как объявить класс контроллером в NestJS?
NestJS — это прогрессивный фреймворк для создания серверных приложений на Node.js, который вдохновлен архитектурными паттернами, такими как MVC (Model-View-Controller). Контроллеры в NestJS отвечают за обработку входящих запросов и возврат ответов. В этом ответе мы рассмотрим, как объявить класс в качестве контроллера в 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 и как строить эффективные серверные приложения.