next 활용법

  • undefined인 asdasdad에서 error를 catch해서 그 다음 미들웨어인 res.send('에러났습니다!!!!!!!!!!!!!!!!!!!!!!!') 가 보여진다.

app.use(
  (req, res, next) => {
    console.log('1 모든 요청에 실행하고 싶어요');
    next();
  },
  (req, res, next) => {
    try {
      console.log('에러 try catch');
      console.log(asdasdad);
    } catch (err) {
      console.log(err);
      next(err); // next에 인수가 들어가있으면 error처리 미들웨어로 넘어감.
    }
  }
);

// 에러처리 미들웨어
app.use((err, req, res, next) => {
  console.error(err);
  res.send('에러났습니다!!!!!!!!!!!!!!!!!!!!!!!');
});
  • 중복을 제거할 수 있다.

    • if문 안에 true이면 다음 미들웨어인 console.log('예, 물론 실행됩니다.')가 실행되고

    • false라면 바로 아래 미들웨어인 console.log('실행되나요?') 가 실행된다. 중복을 줄이기에 용이하다.

app.get(
  '/',
  (req, res, next) => {
    res.sendFile(path.join(__dirname, 'index.html'));
    if (true) {
      next('route'); // 예, 물론 실행됩니다.
    } else {
      next(); // 실행되나요?
    }
  },
  (req, res) => {
    console.log('실행되나요?');
  }
);

app.get('/', (req, res) => {
  console.log('예, 물론 실행됩니다.');
});
app.get(
  '/',
  (req, res, next) => {
    res.sendFile(path.join(__dirname, 'index.html'));
    if (false) {
      next('route'); // 예, 물론 실행됩니다.
    } else {
      next(); // 실행되나요?
    }
  },
  (req, res) => {
    console.log('실행되나요?'); // false일 경우 이 부분이 실행됨
  }
);

app.get('/', (req, res) => {
  console.log('예, 물론 실행됩니다.');
});

Last updated