반응형
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시간은 족히 쓴거같다.
공식문서를 잘 숙지하고 사용해야 시간을 많이 아낄수있을거같다.