Поиск по сайту
Ctrl + K
Вопросы по Nest.js

Как объявить класс контроллером в 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 и как строить эффективные серверные приложения.