cleanUrl: /커스텀-데이터-직렬화
사용자 정보를 조회하는 GET 요청을 실행하면, 현재 응답에는 비밀번호가 포함된다.
이를 해결하기 위해 사용자 엔터티에서 비밀번호 속성을 제외해야 한다.
{
"id": 2,
"email": "[email protected]",
"password": "test"
}
Exclude
데코레이터 + ClassSerializerInterceptor
사용이 방법은 NestJS 공식 문서에서 추천하는 방법이다.
class-transformer
의 Exclude
데코레이터를 활용하여 엔터티 인스턴스를 JSON으로 변환할 때 특정 속성을 제외할 수 있다.
먼저, 사용자 엔터티에서 class-transformer
패키지를 임포트하고 @Exclude()
데코레이터를 적용한다.
user.entity.ts
import { Exclude } from 'class-transformer';
@Entity()
export class User {
@Column()
@Exclude()
password: string;
}
이제 password
속성은 엔터티 인스턴스를 일반 객체로 변환할 때 자동으로 제외된다.