이전 절에서 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); });