class-transformer
-
[TypeORM] QueryBuilder 사용시 return 타입 구체화하기Javascript, Typescript 2022. 2. 10. 17:28
QueryBuilder의 getOne(), getMany()를 이용해서 데이터를 조회할 때 리턴되는 객체의 타입은 항상 엔티티 클래스의 인스턴스이다. 그렇기 때문에 특정 컬럼들만 가져오는 경우, 잠재적인 문제가 일어날 수 있다. 반환되는 객체가 엔티티의 인스턴스인 경우 일어날 수 있는 문제는 무엇이고 이것을 어떻게 해결할 수 있는지 알아보자. 가능한 문제상황 데이터베이스에 게시글(Post)이 등록되어있고, 이 게시글들의 목록을 조회하는 API를 개발해야한다. 이때, 게시글의 목록에서는 게시글의 내용(content)은 가져올 필요가 없다. 위와같은 요구사항이 있고, Post 테이블의 스키마는 다음과 같다. 데이터는 3개만 넣어놓았다. 다음과 같이 Entity를 정의한다. @Entity() export cl..
-
[TS] class-validator의 활용과 검증 옵션Javascript, Typescript 2022. 1. 3. 22:21
class-validator는 joi의 Typescript 버전으로, 데코레이터를 이용해서 편리하게 오브젝트의 프로퍼티를 검증할 수 있는 라이브러리이다. 웹 서버에서 들어오는 HTTP 요청의 JSON body 검증할 때 굉장히 유용한데, Nest.js에서는 빌트인 ValidationPipe가 이 두 라이브러리를 이용한다. 이번에는 class-validator의 활용 방법과 검증 옵션을 알아보자. 기본 사용법 import { IsEmail, IsOptional, IsString, Min } from 'class-validator'; class CreateUserDto { @IsString() name: string; @Min(1) age: number; @IsEmail() @IsOptional() emai..