앞선 아티클에서 next 함수를 사용하게 되면, 다음 라우터로 넘어가게 된다는 기능이 있다고 설명했습니다. 이는 정확히 next('route') 기능입니다. 이를 사용하게 되면, 라우터에 연결된 나머지 미들웨어들을 건너뛰게 됩니다. 아래 예시를 보겠습니다.
router.get('/', (req, res, next) => {
next('route');
}, (req, res, next) => {
console.log('실행 안됨');
next();
}, (req, res, next) => {
console.log('실행 안됨');
next();
});
router.get('/', (req, res) => {
console.log('실행됨');
res.send('Hello EXPRESS');
});
위의 케이스처럼, 같은 주소의 라우터를 여러 개 작성해도 됩니다. 라우터의 개수가 몇 개든 간에 next( )를 호출할 경우, 다음 미들웨어가 실행됩니다. 위 예제에서 첫 미들웨어는 next( )가 아닌 next('route')를 실행했습니다. 이 때는 주소와 일치하는 다음 라우터로 넘어가게 됩니다.
○ 라우터 매개변수 패턴
라우터 패턴 중 라우트 매개변수 패턴을 살펴보겠습니다. 여러 패턴 중 자주 쓰이는 패턴입니다. 아래 형식을 예제로 보겠습니다.
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으로 조회할 수 있습니다.
라우터 매개변수 패턴은 다음 아티클에서 이어서 살펴보도록 하겠습니다.
'Programming > Node.js' 카테고리의 다른 글
7. 익스프레스 (2) - Router 객체를 통한 라우팅 4 (0) | 2024.09.15 |
---|---|
7. 익스프레스 (2) - Router 객체를 통한 라우팅 3 (0) | 2024.09.12 |
7. 익스프레스 (2) - Router 객체를 통한 라우팅 1 (1) | 2024.09.10 |
7. 익스프레스 (1) - 미들웨어 [10] : multer 4 (2) | 2024.09.09 |
7. 익스프레스 (1) - 미들웨어 [10] : multer 3 (5) | 2024.09.08 |