예를 들어 /users/123?limit=5&skip=10이라는 주소의 요청이 들어왔을 때 req.params와 req.query 객체는 다음과 같습니다.
{ id: '123' } { limit: '5', skip: '10' }
app.js에서 에러 처리 미들웨어 위에 넣어둔 미들웨어는 일치하는 라우터가 없을 때 404 상태 코드를 응답하는 역할을 합니다. 미들웨어가 존재하지 않아도 익스프레스가 자체적으로 404 에러를 처리해주기는 하지만, 웬만하면 404 응답 미들웨어와 에러 처리 미들웨어를 연결해주는 것이 좋습니다.
app.use((req, res, next) => { res.status(404).send('Not Found'); });
이 미들웨어를 제거하고 localhost:3000/abc에 접속하면 404 상태 코드와 함께 Cannot GET /abc 메시지가 응답됩니다.
라우터에서 자주 쓰이는 활용법으로 app.route나 router.route가 있습니다.
다음과 같이 주소는 같지만 메서드는 다른 코드가 있을 때 이를 하나의 덩어리로 줄일 수 있습니다.
router.get('/abc', (req, res) => { res.send('GET /abc'); }); router.post('/abc', (req, res) => { res.send('POST /abc'); });
다음과 같이 관련 있는 코드끼리 묶여 있어 더 보기 좋아집니다.
router.route('/abc') .get((req, res) => { res.send('GET /abc'); }) .post((req, res) => { res.send('POST /abc'); });
라우터는 이 정도로만 알아보고, 다음 절에서 req, res 객체에 대해 알아봅시다.