<-->
본문 바로가기

프로그래밍/오답노트

Route Parameter(/:id)에 대하여

반응형

cast to ObjectID for value "new" at path "_id" for modle "Subscriber"

라는 에러가 났다. 관련 코드들의 문법을 확인해봐도 문제가 없었다.

 

일단 닥치는대로 해보자라는 생각으로

 

I. 문제의 코드 router.get("subscriber/new")router.get("/subscribers/new")로 했더니 정상적으로 실행이됐다.

요청 uri을 잘못썼나 확인해봤는데 이상이 없었다.

 

II. router.get("subscriber/new") 코드의 줄 위치를 라우터 최상위로 옮겨봤더니 정상적으로 실행이됐다. 

 

순서에 문제가있다고 생각한 나는 한줄씩 내리면서 실행해보다가 다음 상태에서 문제점을 발견했다.

router.get("/subscriber/:id")

router.get("/subscriber/new")

 

router.get("/subscriber/:id") <- 이 코드의 :id 파라미터는 특정 위치의 string을 파싱하기 때문에

/subscriber/new 요청이 이 코드에 걸려 오류가 났던것이다.

 

간단한 문제였는데 발견하는데 2시간은 족히 쓴거같다.

공식문서를 잘 숙지하고 사용해야 시간을 많이 아낄수있을거같다.