예를 들어 /users/123?limit=5&skip=10이라는 주소의 요청이 들어왔을 때 req.paramsreq.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.routerouter.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 객체에 대해 알아봅시다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.