☑️ Data Validation
Data Validation(데이터 유효 검사)란 다루는 데이터가 모두 구조한 포맷과 일치하는 올바른 Format을 가지는지 확인하는 과정이라고 한다.
그렇다면 비슷한 이름의 Class-Validator는 무엇일까?
☑️ Class-Validator
데코레이터를 이용해서 편리하게 오브젝트의 프로퍼티를 검증할 수 있는 라이브러리로, 내부적으로 validator.js를 사용하여 유효성 검사를 수행한다고 한다.
사용하는 법은 간단한데, 다음과 같이 class 스키마를 정의하고, 프로퍼티의 유효성을 검증할 적절한 데코레이터를 달아주는 방식으로 사용한다.
import { IsString, Min, Max, Length, IsInt, Contains } from 'class-validator';
class CreateUserDto {
@IsString() // string 타입이 맞는지 확인
name: string;
@Min(1) // 최소 수치가 필요한 포맷일 경우, 최소 수치에 부합하는지 확인
age: number;
@Length(10, 20) // string 타입의 길이가 10~20 사이인지 확인
title: string;
@IsInt() // number 타입인지 확인
@Min(1) // 최소 숫자가 필요한데 명시한 수치에 부합하는지 확인
@Max(100) // 최대 숫자가 필요한데 명시한 수치에 부합하는지 확인
age: number;
@Contains('hello') // 해당 프로퍼티가 'hello'를 포함하는지 확인
text: string;
}
더 많은 속성들은 다음의 공식 문서에서 확인이 가능하다. 이를 통해 편리하게 프로퍼티가 유효한 값을 가지는지 확인할 수 있다.
유효한 값이 들어왔을 경우 정상적으로 성공 처리가 될테지만, 부합하지 않은 것이 있을 경우, 어떤것이 부합하지 않았는지 원인에 대한 에러를 뱉어준다.
참고 : https://blog.siner.io/2019/12/17/typescript-class-validator/
class-validator를 사용한 타입스크립트(Typescript) Validation
참고자료 : typestack/class-validator Express를 사용하는 Typescript 환경에서 class-validator를 사용하여 Request Data를 Validation하는 과정을 다루고 있습니다. 1. Data Validation Data Validation(데이터 유효성 검사)이란
blog.siner.io
참고 : https://seungtaek-overflow.tistory.com/13
[TS] class-validator의 활용과 검증 옵션
class-validator는 joi의 Typescript 버전으로, 데코레이터를 이용해서 편리하게 오브젝트의 프로퍼티를 검증할 수 있는 라이브러리이다. 웹 서버에서 들어오는 HTTP 요청의 JSON body 검증할 때 굉장히 유
seungtaek-overflow.tistory.com
참고 : https://github.com/typestack/class-validator
GitHub - typestack/class-validator: Decorator-based property validation for classes.
Decorator-based property validation for classes. Contribute to typestack/class-validator development by creating an account on GitHub.
github.com
'📖 TIL' 카테고리의 다른 글
[TypeORM] TypeORM의 데코레이터 (0) | 2022.08.17 |
---|