기존에 존재하던 route 파일에 경로를 추가하고 서버에 요청을 보냈는데 에러가 발생하였다. 아래 사진에 맨 아래 2개에 get메서드가 새롭게 추가한 경로이다.
경로를 추가한 코드

평소처럼 구글에 message 부분에 나온 cast to objectid failed for value (type string) 이렇게 검색을 했는데 대부분 해결책이 타입에 문제가 있다는 대답이었다. 그래서 _Id 타입을 정의한 HOTEL 모델 인터페이스도 수정해 보고 /countByCity 경로로 이동했을 때 실행될 함수도 타입에 대해 문제가 발생하지 않도록 코드를 아래와 같이 만들었다. 하지만 에러가 사라지지 않았다.
export const countByCity = async (
req: express.Request,
res: express.Response,
next: NextFunction
) => {
const cities = req.query.cities;
console.log(cities);
};
에러 메세지

그러다가 내 눈에 띈 에러 메시지와 MongoDB라는 단어 딱 느낌이 왔다. 글을 게시한 작성자의 질문은 POST, PUT, DELETE 다양한 요청들은 다 가능한데 qeury 요청을 하기 위해 문자열 매개변수를 준 경로에 요청하면 에러가 발생한다는 내용까지 똑같았다. 해결 방법도 질문자가 작성했는데 방법은 이랬다. 경로가 충돌하기 때문에 에러가 발생하는 것이고 query를 받을 경로 정의를 동적 params인 id를 받는 경로보다 이전에 작성해 주는 것이다.



실제로 문제가 해결되었다. 다음에도 비슷한 상황이 온다면 우선적으로 시도해 볼 만한 방법이라고 생각한다.