Канал на обработчике в Nest
Один и тот же канал нужен каждому параметру метода, а в декораторе его пришлось бы повторять. Запись раздувается, и правило легко забыть на новом параметре.
Декоратор UsePipes вешают на метод
обработчика. Указанные каналы действуют
на все параметры этого метода, поэтому
в Param остаётся только имя.
Порядок тот же: значение из запроса
сначала проходит канал, потом попадает
в аргумент с нужным типом.
Покажем на примере карточки поста с одним числовым параметром адреса:
import {
Controller,
Get,
Param,
ParseIntPipe,
UsePipes,
} from '@nestjs/common';
@Controller('posts')
export class PostController {
@Get(':id')
@UsePipes(ParseIntPipe)
getPost(@Param('id') id: number): string {
return String(id);
}
}
Зарегистрируем контроллер в корневом модуле, чтобы маршрут заработал:
import { Module } from '@nestjs/common';
import { PostController } from './post.controller.js';
@Module({
controllers: [PostController],
})
export class AppModule {}
Сделайте открытие карточки работника
по номеру в адресе, чтобы число
готовили для всего метода сразу,
в контроллере WorkerController
и подключите его к корневому модулю.