앞선 아티클에서 살펴본 라우터 매개변수 패턴을 이어서 살펴보도록 하겠습니다.
○ 라우터 매개변수 패턴
라우터 패턴 중 라우트 매개변수 패턴을 살펴보겠습니다. 여러 패턴 중 자주 쓰이는 패턴입니다. 아래 형식을 예제로 보겠습니다.
router.get('/user/:id', (req, res) => {
console.log(req.params, req.query);
});
위의 주소 :id는 문자 ':id'를 의미하는 것이 아니라 다른 값을 넣을 수 있는 파라미터를 의미합니다. 예를 들어서 /user/1, 또는/user/123의 요청도 이 라우터가 처리하게 됩니다.
이 방식을 사용하게 되면 :id에 해당하는 1이나 123을 조회할 수 있는데, 이는 req.params 객체에 들어있습니다. 만일 :id일 경우에는 req.params.id로, type이면 req.params.type으로 조회할 수 있습니다.
단, 주의할 점은 해당 패턴은 다양한 라우터를 아우르는 와일드카드 역할을 한다는 점 입니다. 즉, 다른 일반 라우터보다 반드시 뒤에 위치해야 합니다. 앞에 위치할 경우 다른 라우터가 실행되지 않게 되죠.
router.get('/user/:id', (req, res) => {
console.log('이것만 실행됨');
});
router.get('/user/like', (req, res) => {
console.log('실행 안됨');
});
요청 주소에 쿼리스트링을 사용할 때도 있습니다. 쿼리스트링의 K-V 정보는 req.query 객체에 들어가게 됩니다. 만일, /user/123?limit=5&skip=10 이라는 주소의 요청이 들어왔을 때, req.params와 req.query 객체는 { id: '123' } / {limit: '5', skip: '10' } 이 됩니다.
'Programming > Node.js' 카테고리의 다른 글
7. 익스프레스 (3) - req, res 객체 알아보기 (5) | 2024.09.16 |
---|---|
7. 익스프레스 (2) - Router 객체를 통한 라우팅 4 (0) | 2024.09.15 |
7. 익스프레스 (2) - Router 객체를 통한 라우팅 2 (2) | 2024.09.11 |
7. 익스프레스 (2) - Router 객체를 통한 라우팅 1 (1) | 2024.09.10 |
7. 익스프레스 (1) - 미들웨어 [10] : multer 4 (2) | 2024.09.09 |