[TIL] NestJS 공부 26일차
손 부상 때문에 글을 자주 못쓰거나 퀄리티가 떨어질 수 있습니다..ㅠ
Validation
웹 애플리케이션으로 전송되는 데이터를 확인하는 제일 좋은 방법은 확인하는 것이다.
그리고 요청을 자동으로 검증해주는 파이프를 Nest에서 제공한다.
- ValidationPipe
- ParseIntPipe
- ParseBoolPipe
- ParseArrayPipe
- ParseUUIDPipe
첫 번째 파이프를 제외하면 나머지는 타입에 따라 다른 것이라고 유추할 수 있고
첫 번째는 class-validator
패키지를 사용하고 유효성 검사에도 사용된다. 그리고 유효성 검사에 편리하게 만들어진 파이프다!
ValidationPipe
이 파이프는 class-validator
와 class-transformer
를 사용한다고 적혀있는데 기본 옵션은 아래와 같다.
export interface ValidationPipeOptions extends ValidatorOptions {
transform?: boolean;
disableErrorMessages?: boolean;
exceptionFactory?: (errors: ValidationError[]) => any;
}
자동 검증
ValadationPipe
를 바인딩한 후 자동 검증되게 만들어봅시다
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.useGlobalPipes(new ValidationPipe());
await app.listen(3000);
}
bootstrap();
이제 엔드포인트를 만든 후 자동 검증이 되는지 확인해봅시다
@Post()
create(@Body() createUserDto: CreateUserDto) {
return 'This action adds a new user';
}
CreateUserDto
에 있는 몇가지 유효성 검사 규칙을 추가할 수 있다. 이런 규칙을 적용한 후 엔드포인트에 도달한다면 자동으로 Bad Request를 보내주는 등 해준다.
import { IsEmail, IsNotEmpty } from 'class-validator';
export class CreateUserDto {
@IsEmail()
email: string;
@IsNotEmpty()
password: string;
}
Author And Source
이 문제에 관하여([TIL] NestJS 공부 26일차), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ingyocode/TIL-NestJS-공부-26일차저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)