DTO
설명
프로세스 간에 데이터를 전달하는 객체
기능
유효성 검사 & 변환 (Data Transer Object)
생성
해당 모듈 폴더에 dto폴더 생성 → dto.ts 파일 생성
Pipe
•
@Injectable()데코레이터로 주석이 달린 클래스
다음과 같이 URL 요청이 왔을 때, 먼저 해당 URL에 대한 데이터들을 처리해주는 것이다. 만약 문제가 생기면 통과하지 못하고 Error 처리되며, 통과한다면 데이터를 처리해준 채로 handler에게 가게 된다.
•
Data Transformation
입력 데이터를 원하는 형식으로 변환하는 것을 말한다. 가령 문자열에서 정수로 바꾸는 것을 의미한다.
•
Data Validation
유효성 체크로서, 입력 데이터를 평가하고 유효한 경우 변경되지 않은 상태로 전달된다. 그렇지 않으면 데이터가 올바르지 않을 때 예외를 발생시킨다.
validator : 유효성 검사
transformer : 자동 타입 변환기
ex)string으로 get을 받아도 number형인 함수에 number형태로 변환 삽입
npm i class-validator class-transformer
TypeScript
복사
import { ValidationPipe } from '@nestjs/common';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.useGlobalPipes(
new ValidationPipe({
// 유효성 검사 데코레이터를 사용하지 않는 모든 속성의
// 유효성이 검사된(반환된) 개체를 제거
whitelist: true,
// 허용되지 않은 속성을 제거하는 대신 유효성 검사기가 예외를 발생
forbidNonWhitelisted: true,
transform: true, // 변환
}),
); //연결
await app.listen(3000);
}
bootstrap();
TypeScript
복사
•
class-validator옵션
구조
import { IsString, IsNumber } from 'class-validator';
// 유효성 검사
export class CreateMovieDto {
@IsString()
readonly title: string;
@IsNumber()
readonly year: number;
@IsString({ each: true })
readonly genres: string[];
}
TypeScript
복사