🎯 문제 상황
//Nest.js Controller 코드
@Get('/:id')
getRecord(@Param() id:number): Promise<Record> {
return this.recordsService.getRecordById(id);
}
//Nest.js service 코드
async getRecordById(id:number): Promise<Record> {
const record = await this.recordsRepository.findOneBy({id});
if (!record) {
throw new NotFoundException();
}
return record
}
Postman을 통해 위의 코드에 Get request를 보내면
"ERROR [ExceptionsHandler] invalid input syntax for type integer" 이라는 오류를 얻었다.
무슨 소린가 싶어서 consol.log(id,typeof(id))를 찍어보니
이런 결과를 얻었다.
나는 당연히 @Param() id:number 로 받은 id 값이 int일줄 알았는데 이게 무슨 일이지 ?
🎯 문제 해결
@Param() 은 사용자가 보낸 request의 모든 파라미터 값을 가지고 온다 !
나는 거기서 id 값만 필요하므로
@Param('id') 를 통해 필요한 파라미터 값만 꺼내오자 !
@Get('/:id')
getRecord(@Param('id') id:number): Promise<Record> {
return this.recordsService.getRecordById(id);
}
포스트맨을 통해 확인해보니 아주 정상적으로 동작하고 있음을 알 수 있다 !!!
'Node.js > Nest.js' 카테고리의 다른 글
[Nest.js] Custom Repository Unit Testing (TypeORM) (0) | 2023.06.10 |
---|---|
[Nest.js] Entity와 DTO의 차이점 - [Error] unnamed portal parameter (0) | 2023.06.06 |
[Nest.js] PartialType을 이용한 UpdateDto 만들기 (0) | 2023.06.01 |
[Nest.js] No metadata for ~~ was found 에러 (0) | 2023.06.01 |
[Nest.js] Nest.js의 특징과 철학 (0) | 2023.05.30 |