* 직렬화
- 직렬화 : 현시스템에서 사용되는 데이터의 구조를 다른곳에서도 사용가능하도록 변환 // class -> JSON
- 역직렬화 : JSON을 obj로 변환
@Get()
@UseInterceptors(ClassSerializerInterceptor)
getAllUsers(){
return this.usersService.getAllUsers();
}
/**
* REQ
* fe -> be
* plain obj (JSON) -> class instance (DTO)
*
* RES
* be -> fe
* class instance(DTO) -> plain obj (JSON)
*
* toClassOnly -> REQ에만 적용
* toPlainOnly -> RES에만 적용
*/
@Exclude({
toPlainOnly:true, //RES에 비밀번호 제외
})
password: string;
결과
* 전역으로 적용하기
- 기존의 단점 : 컨트롤러에 일일히 @UseInterceptors(ClassSerializerInterceptor) 달아야함
- 개선
- appModule > providers에 추가하면 전역으로 작동함.
providers: [AppService,
{
provide:APP_INTERCEPTOR,
useClass: ClassSerializerInterceptor,
}
],
})
export class AppModule {}