리셋 되지 말자

[express] 미들웨어 종류와 실행 순서 본문

NodeJS

[express] 미들웨어 종류와 실행 순서

kyeongjun-dev 2020. 9. 23. 18:41

미들웨어 종류

(expressjs.com/en/guide/using-middleware.html)페이지에서 아래와 같이 미들웨어의 종류를 확인할 수 있다.

 

미들웨어 실행 순서

app.get('/user/:id', function (req, res, next) {
  // if the user ID is 0, skip to the next route
  if (req.params.id === '0') next('route')
  // otherwise pass the control to the next middleware function in this stack
  else next()
}, function (req, res, next) {
  // send a regular response
  res.send('regular')
})

// handler for the /user/:id path, which sends a special response
app.get('/user/:id', function (req, res, next) {
  res.send('special')
})

미들웨어의 인자에 함수를 연속으로 여러개 두어서 미들웨어를 선언할 수도 있다.

위의 같은 경우 req.params.id가 0이면 next('route')를 통해 다음 미들웨어(res.send('regular'))가 아닌 res.send('special') 미들웨어가 실행된다.

만약 req.params.id가 0이 아니면, next()를 통해 바로 다음 미들웨어인 res.send('regular')가 실행되게 된다. 이 경우에 next가 없으므로 미들웨어가 끝나버린다.

Comments