[Nest.js] Layerd Architecture ( 계층화 구조 ) 는 무엇이고 왜 사용할까? [Nest.js] Layerd Architecture ( 계층화 구조 ) 는 무엇이고 왜 사용할까? Nest.js의 동작 구조 [Nest.js] Nest.js의 동작 구조 🐳 왜 Nest.js의 구조를 알아야 하는가 뭐든지 새로운 것을 배울 때는 그 기술들이 왜 나오고 어떤 메커니즘으로 동작하는지 아는 것이 가장 중요하 programmer-hoo.tistory.com 🐳 왜 Nest.js의 구조를 알아야 하는가 뭐든지 새로운 것을 배울 때는 그 기술들이 왜 나오고 어떤 메커니즘으로 동작하는지 아는 것이 가장 중요하다. 특히나 Nest.js는 다른 node.js 프레임워크에는 없는 Architecture 문..
Nest.js에서는 기본적으로 Jest를 이용한 Unit Testing과 e2e Testing을 지원한다. 기본으로 지원하는 기능을 통해 오늘부터 운동 기록 서비스의 TestCode 작성기 시작합니다 !! 🐳 첫 코드 - 실패 Nest.js의 공식 홈페이지와 Jest의 공식 홈페이지를 참고하여 가장 먼저 운동기록 테이블의 service 레이어를 테스트하는 코드를 작성하였다. import { DataSource } from "typeorm"; import { RecordsRepository } from "./records.repository"; import { RecordsService } from "./records.service"; import { Record } from "./entity/record..
🎯 문제 상황 //Nest.js Controller 코드 @Get('/:id') getRecord(@Param() id:number): Promise { return this.recordsService.getRecordById(id); } //Nest.js service 코드 async getRecordById(id:number): Promise { const record = await this.recordsRepository.findOneBy({id}); if (!record) { throw new NotFoundException(); } return record } Postman을 통해 위의 코드에 Get request를 보내면 "ERROR [ExceptionsHandler] invalid input..
🎯 문제상황 CreateDto를 Update에도 사용하려고 하니 필요하지 않은 속성도 반드시 입력해줘야 하는 문제가 발생했다. 그래서 UpdateDto를 만들었다. UpdateDto의 경우 속성은 CreateDto와 같고 일부분만 있으면 되므로 CreateDto의 성분에서 @IsNotEmpty() 데코레이터만 제거해 주었다. ( 모든 내용은 같고 @IsNotEmpty() 만 제거한 상태이다 ! ) 결과는 대.실.패. UpdateDto를 만들어 줬음에도 다른 속성 값을 입력하지 않았다는 문제가 발생했다. 새로운 방법이 필요함을 알게 됐다. 🎯 문제해결 UpdateDto의 경우 CreateDto와 속성은 같으나 일부 속성만을 가진다. Nest.js 에서는 이 부분을 쉽게 구현하기 위해 "PartialTyp..
🎯 문제상황 오늘 새로운 API를 만들고 postman으로 request를 보내 봤는데 다음과 같은 에러가 발생했다. Record Entity에 대한 metadata를 찾을 수 없다는 에러가 발생했다. ✏️metadata란? : data가 어떠한 속성을 가지는지 데이터에 정보를 담고 있는 데이터를 의미한다. 🎯 문제이해 오류 코드를 읽어보니 record.repository.ts 파일의 datasource가 Record Entity의 metadata를 가지고 와야 하는데 못 가지고 오는 것으로 이해했다. 구글링을 통해 찾아보니 TypeORM 이 Entity의 metadata를 가지고 오지 못하는 경우에 발생할 수 있는 에러인 것을 알게 됐다. 🎯 문제해결 문제 해결읠 위해 TypeORM config 파일에..