// 모든 판례 조회 API
@Get('cases')
async getAllDetails(
@Query('cursor') cursor: string,
@Query('limit') limit: string,
){
let cursorNumber = parseInt(cursor)
let limitNumber = parseInt(limit)
console.log(cursorNumber)
console.log(limitNumber)
if(isNaN(cursorNumber) || isNaN(limitNumber))
{
cursorNumber = 0;
limitNumber = 10;
}
return await this.trialsService.getAllDetails(cursorNumber, limitNumber);
}
이 api를 인섬니아에서 호출하였는데
자꾸 500번 에러가 발생하였다.
무슨 에러일까살펴보니...

뜬금없는
// 특정 재판 조회 API(회원/비회원 구분 X)
@Get(':trialsId')
async findOneByTrialsId(
@Param('trialsId') id: number,
) {
const data = await this.trialsService.findOneByTrialsId(+id);
return {
statusCode: HttpStatus.OK,
message: "재판 검색에 성공하였습니다.",
data
}
}
이 api에서 받아서 지혼자 오류 뜨고 있는 것이였다...
원인을 살펴보니
문제의 원인은 라우팅 경로의 충돌 때문이였다. NestJS는 라우팅을 정의할 때 경로를 매칭하는 순서에 따라 어떤 핸들러가 호출될지 결정된다. 여기서는 두 라우트 @Get('cases')와 @Get(':trialsId')가 있다.
@Get('cases')는 특정한 경로(cases)를 명시적으로 지정한다.
@Get(':trialsId')는 경로 파라미터(trialsId)를 사용하여 어떤 값이든 받을 수 있는 더 일반적인 경로를 정의한다.
이 경우, @Get(':trialsId')는 모든 GET 요청을 받을 수 있는 "와일드카드" 역할을 하게 되어, /cases 경로로의 요청까지도 이 핸들러가 처리하려고 시도한다. 그 결과, /cases 경로로의 요청이 의도치 않게 findOneByTrialsId 핸들러에 의해 처리되고, 여기서 :trialsId가 /cases 문자열로 취급되어 NaN 오류가 발생하는 것이다....
그래서 // 모든 판례 조회 API 를 코드의 위쪽으로 하였더니 잘 해결되었다