videoRouter.get("/:id/edit", controller);
위 코드의 URL 의 /:id 이 부분을 파라미터라고한다.
:id 대신 다른이름으로도 쓸 수 있다.
예를 들면
videoRouter.get("/:hello", controller);
이런식으로 쓸 수 있다.
이름은 중요하지않고, 포인트는 이걸 이용해서 url 안에 변수를 포함시킬 수 있다는것이다.
예를 들어 /videos/12/edit 이라는 URL에 접근하게되면,
Express 는 :id 는 12가 되는것이다.
주의할 점이 있다면
videoRouter.get("/:id", watch);
videoRouter.get("/upload", upload);
videoRouter.get("/:id/edit", edit);
videoRouter.get("/:id/delete", deleteVideo);
코드를 위와같이 짰을경우인데, 이게 왜 문제가 되나면, upload 경로로 가고싶은데 express는 URL에 나타나는 upload를 id로 인식해서 watch 컨트롤러를 실행시키기 떄문이다.
* 리퀘스트는 맨 위에서부터 차례대로 탐색하기 때문에 *
따라서 다음과 비슷한 코드를 작성할때는
videoRouter.get("/upload", upload);
videoRouter.get("/:id/edit", edit);
videoRouter.get("/:id/delete", deleteVideo);
videoRouter.get("/:id", watch);
이런식으로 맨 아래에 놓거나, 정규식을 사용해서 필터링 하는 방법이 있다.
'프로그래밍 > Node & Express' 카테고리의 다른 글
Node.js - 카카오 로그인 구현하기 (0) | 2021.08.11 |
---|---|
Express - 정규식 (0) | 2021.08.07 |
window에서 Express 설치하기 (0) | 2021.02.16 |
window 에서 node.js 설치하기 (0) | 2021.02.16 |