Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Nest.js: pipes, pipetransform, validation, transformation, argumentmetadata

Как использовать Pipes в NestJS?

Вопрос проверяет, как Pipes обрабатывают входящие данные, включая валидацию и трансформацию.

Короткий ответ

Pipes в NestJS трансформируют или валидируют входящие данные до того, как они попадают в контроллер. Их можно создавать вручную, реализуя интерфейс PipeTransform, или использовать встроенные, такие как ValidationPipe. Pipes применяются на уровне методов, контроллеров или глобально через @UsePipes.

Длинный ответ

Pipes в NestJS используются для:

  • Проверки данных на соответствие заданным условиям (валидация).

  • Преобразования данных из одного типа в другой (трансформация).

Ключевой метод Pipe — transform(value, metadata), где:

  • value — данные из запроса.

  • metadata — дополнительная информация о параметре.

Пример: кастомный Pipe для преобразования строки в число:

import { PipeTransform, Injectable, ArgumentMetadata, BadRequestException } from '@nestjs/common';

@Injectable()
export class ParseIntPipe implements PipeTransform<string, number> {
  	transform(value: string, metadata: ArgumentMetadata): number {
    		const val = parseInt(value, 10);
    		if (isNaN(val)) {
      			throw new BadRequestException('Входное значение должно быть числом');
    		}
    			return val;
 		}
	}
}

Использование в контроллере:

import { Controller, Get, Param } from '@nestjs/common';
import { ParseIntPipe } from './parse-int.pipe';

@Controller('items')
export class ItemsController {
  	@Get(':id')
  	getItem(@Param('id', new ParseIntPipe()) id: number) {
    		return `Идентификатор: ${id}`;
  	}
}
  • Аватар

    Node.js Guru

    Demetra

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Nest.js

    Nest.js

Ключевые слова

#pipes

#pipetransform

#validation

#transformation

#argumentmetadata

Подпишись на Node.js Developer в телеграм

  • Аватар

    Node.js Guru

    Demetra

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.