Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Nest.js: dto, validationpipe, class-validator, isint, isstring

Как валидировать входящие запросы? Приведите пример с использованием 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 для автоматической проверки корректности входящих данных. Это уменьшает вероятность ошибок и делает код более читаемым.

  • Аватар

    Node.js Guru

    Demetra

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

Уровень

  • Рейтинг:

    2

  • Сложность:

    4

Навыки

  • Nest.js

    Nest.js

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

#dto

#validationpipe

#class-validator

#isint

#isstring

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

  • Аватар

    Node.js Guru

    Demetra

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