Data Transfer Object
계층 간 데이터 전송을 위해 사용되는 객체를 의미한다.
Express에는 사용하지 않았던 기능이며, 실제 사용해봤을 때 장점으로는
Ex) Request를 받을때, req.body로 data를 일일히 변수로 지정한 후, 이것을 Service단의 메소드에 넣을 때에도 일일히 넣어준다.
먼저 dto 폴더를 생성 후, dto 파일을 생성해준다
// src/board/dto/create-board.dto.ts
import { IsNotEmpty, MaxLength, MinLength } from 'class-validator';
export class CreateBoardDto {
// validation을 위한 데코레이션
@IsNotEmpty()
@MinLength(2)
@MaxLength(20)
title: string;
@IsNotEmpty()
content: string;
}
Controller에서 Body로 받을 때, 타입에 DTO를 넣어준다.
@Post()
create(@Body() data: CreateBoardDto) {
return this.boardService.create(data);
}
Service 단에도 마찬가지로 넣어준다