Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад

Как валидировать входящие запросы? Приведите пример с использованием class-validator.

Вопрос проверяет знание подходов к валидации запросов с использованием библиотек class-validator и class-transformer.

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

Валидация входящих запросов в NestJS осуществляется с помощью DTO и библиотеки class-validator. Определите правила валидации через декораторы в DTO и подключите глобально ValidationPipe.

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

Валидация помогает проверить корректность данных перед их обработкой. NestJS использует DTO (Data Transfer Objects) совместно с библиотеками class-validator и class-transformer.

 

1. Установка зависимостей:

npm install class-validator class-transformer

2. Создание DTO с правилами валидации:

import { IsString, IsInt, MinLength, MaxLength } from 'class-validator';

export class CreateUserDto {
  @IsString()
  @MinLength(3)
  @MaxLength(20)
  username: string;

  @IsInt()
  age: number;
}

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

import { Controller, Post, Body } from '@nestjs/common';
import { CreateUserDto } from './create-user.dto';

@Controller('users')
export class UsersController {
  @Post()
  async create(@Body() createUserDto: CreateUserDto) {
    console.log('Valid data:', createUserDto);
  }
}

4. Включение глобальной валидации:
В файле main.ts добавьте глобальный ValidationPipe:

import { ValidationPipe } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.useGlobalPipes(new ValidationPipe());
  await app.listen(3000);
}
bootstrap();


Используйте DTO и ValidationPipe для автоматической проверки корректности входящих данных. Это уменьшает вероятность ошибок и делает код более читаемым.

Уровень

  • Рейтинг:

    2

  • Сложность:

    4

Навыки

  • Nest.js

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

#dto

#validationpipe

#class-validator

#isint

#isstring

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