РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnsPmPnGP 74 of 168 menu
◀ ▶

Глобальный канал в Nest

На каждом маршруте номер в адресе снова строка, и канал приходится повторять в декораторах. Забытая копия ломает тип, хотя правило одно для всего сервера.

Глобальный канал регистрируют при старте приложения до открытия порта. Он действует на параметры всех обработчиков: значение из адреса или запроса проходит преобразование, даже если в методе декоратор параметра канала не указан.

Покажем на примере карточки поста с одним числовым параметром адреса:

import { Controller, Get, Param } from '@nestjs/common'; @Controller('posts') export class PostController { @Get(':id') getPost(@Param('id') id: number): string { return String(id); } }

Перед прослушиванием порта повесим канал целого числа на всё приложение в точке входа:

import { NestFactory } from '@nestjs/core'; import { ParseIntPipe } from '@nestjs/common'; import { AppModule } from './app.module.js'; async function bootstrap() { const app = await NestFactory.create(AppModule); app.useGlobalPipes(new ParseIntPipe()); await app.listen(process.env.PORT ?? 3000); } await bootstrap();

Контроллер по-прежнему регистрируем в корневом модуле:

import { Module } from '@nestjs/common'; import { PostController } from './post.controller.js'; @Module({ controllers: [PostController], }) export class AppModule {}

Сделайте открытие карточки работника по номеру в адресе с общим для приложения преобразованием в число в контроллере WorkerController и подключите его к корневому модулю.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить