export const Upload = (req, res) => res.send("Upload Video")export const see = (req, res) => res.send("watch video") vidoesRouter.get("/upload", Upload); vidoesRouter.get("/:id", see);
분명 /videos/upload 를 치면 "Upload Video" 가 뜨게 해줬는데 이상하게 "Watch Video"가 뜨는 에러가 발생했다. 에러가 생긴 원인은 컨트롤러의 순서가 잘못되서였다.
vidoesRouter.get("/:id", see); vidoesRouter.get("/:id/edit", edit); vidoesRouter.get("/:id/delete", Delete); vidoesRouter.get("/upload", Upload);
/:id 다음에 /upload 라우터를 만들면 /upload를 express가 파라미터로 인식 하기 때문에 이런 에러가 뜨는 것이다. 그래서 upload 컨트롤러를 최상단으로 옮기자 해결됬다. upload를 최상단으로 놓으면 주소창에 /upload를 적었을때 맨 위에 있는 upload라우터 url과 일치하는지를 볼 테지만 :id가 적힌 라우터를 최상단에 놓으면 upload를 매개변수로 인식하고 다다음에 등장하게 될 upload 라우터랑 비교하는 작업이 일어나지 않는 것이다.