* 직렬화
- 직렬화 : 현시스템에서 사용되는 데이터의 구조를 다른곳에서도 사용가능하도록 변환 // 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 {}
'JS > Nest.js' 카테고리의 다른 글
[Nest] 환경변수 .env 구현 (0) | 2024.09.22 |
---|---|
[Nest] 커서기반 page 구현 (0) | 2024.09.21 |
[Nest] DTO 구현, class-validator, message 구현 (0) | 2024.09.20 |
[Postman] 자동으로 accessToken 주입 설정, authorization 설정 (0) | 2024.09.20 |
[Nest] 커스텀 데코리이터 => controller 코드 간소화 (0) | 2024.09.20 |