Node.js/Nest.js
[Nest.js] ERROR [ExceptionsHandler] invalid input syntax for type integer
후뿡이
2023. 6. 3. 22:51
🎯 문제 상황
//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);
}
포스트맨을 통해 확인해보니 아주 정상적으로 동작하고 있음을 알 수 있다 !!!