ValidationPipe

Validates and transforms incoming payloads against class-validator DTOs.

Since NestJS 10/11 Spec ↗

Syntax

new ValidationPipe(options?: ValidationPipeOptions)

Parameters

NameTypeRequiredDescription
options ValidationPipeOptions No Settings like whitelist, forbidNonWhitelisted, transform, and groups.

Returns

ValidationPipe — A pipe instance applied globally or per route.

Throws

  • BadRequestException — Thrown with detailed messages when validation fails.

Examples

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

const app = await NestFactory.create(AppModule);
app.useGlobalPipes(
  new ValidationPipe({ whitelist: true, transform: true }),
);
import { IsEmail, MinLength } from 'class-validator';

export class CreateUserDto {
  @IsEmail()
  email: string;

  @MinLength(8)
  password: string;
}

Notes

Requires class-validator and class-transformer. `whitelist` strips unknown properties, `forbidNonWhitelisted` rejects them, and `transform` instantiates DTO classes and coerces primitive types.