Как использовать параметры маршрута в контроллере NestJS?
Параметры маршрутов в NestJS позволяют передавать данные через URL, что упрощает взаимодействие между клиентом и сервером. Это особенно полезно для получения информации о конкретных ресурсах, таких как пользователи или записи.
Основы работы с параметрами маршрутов
В NestJS параметры маршрутов определяются в пути контроллера и могут быть извлечены с помощью декоратора @Param()
. Параметр маршрута обозначается двоеточием (:
) перед его именем.
Пример использования параметров маршрутов
Давайте рассмотрим практический пример. Предположим, у нас есть контроллер пользователей, и мы хотим получить пользователя по его ID.
Шаг 1: Создание контроллера
Создаем файл users.controller.ts
:
import { Controller, Get, Param } from '@nestjs/common';
@Controller('users')
export class UsersController {
// Простой массив пользователей для примера
private readonly users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' },
];
// Метод для получения пользователя по ID
@Get(':id')
getUserById(@Param('id') id: string) {
const user = this.users.find(user => user.id === parseInt(id));
if (!user) {
return { message: 'Пользователь не найден' };
}
return user;
}
}
Шаг 2: Регистрация контроллера в модуле
Затем мы должны зарегистрировать контроллер в модуле, например, в app.module.ts
:
import { Module } from '@nestjs/common';
import { UsersController } from './users.controller';
@Module({
imports: [],
controllers: [UsersController],
providers: [],
})
export class AppModule {}
Как это работает
UsersController
мы определили маршрут GET /users/:id
, где :id
— это параметр маршрута.getUserById
будет вызван, и значение ID будет автоматически извлечено из URL и передано в метод в качестве аргумента.Пример запроса
Когда вы выполните запрос на GET /users/2
, ответ будет:
{
"id": 2,
"name": "Bob"
}
Если вы выполните запрос на GET /users/5
, ответ будет:
{
"message": "Пользователь не найден"
}
Заключение
Использование параметров маршрутов в NestJS — это отличный способ получать данные по конкретным запросам. Этот подход улучшает структуру вашего API и делает его более понятным для разработчиков и пользователей. Надеюсь, этот пример помог вам понять, как использовать параметры маршрутов в вашем приложении на NestJS!