프로그래밍/Node & Express

Express.js - URL Parameter

삐제제 2021. 8. 7. 16:16

 

 

 

 

 

 

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