개요

보통 자주 사용하는 body-parser나 morgan등 예제 코드를 통해

app.use( ... ) 

...에 적용할 미들웨어를 넣으면 이렇게 body-parser나 morgan 같은 라이브러리가 적용되는 마법같은 것으로 알고 있었다. 이번에 공부를 해서 마법이 아니라 기술로 만들어 보고자 한다.
(모르면 마법, 알면 기술 - 이고잉)

미들웨어의 매우 간단한 의미

만약 만든 서버에서 접속을 하면 반드시 A기능과 B기능을 실행해야 한다고 가정하자.

미들웨어를 사용하지 않으면

app.get('/', (req, res) => {
  console.log("A 기능 실행");
  console.log("B 기능 실행");
  console.log("다음 동작");
})

app.get('/hello', (req, res) => {
  console.log("A 기능 실행");
  console.log("B 기능 실행");
  console.log("다음 동작 hello");
})

...

모든 라우터마다 위와 같이 A기능과 B기능을 실행하는 코드를 위에 적어줘야 한다.

미들웨어를 사용하면

app.use((req, res, next) => {
  console.log("A 기능 실행");
  next();
})

app.use((req, res, next) => {
  console.log("B 기능 실행");
  next();
})

app.get('/', (req, res) => {
  console.log("다음 동작");
})

app.get('/hello', (req, res) => {
  console.log("다음 동작 hello");
})

위와 같이 app.use를 통해 app.get ... 라우터 실행 전에 수행해야할 동작을 미리 지정해 두어 훨씬 깔끔하게 코드 작성이 가능해진다.

좀 더 구체적인 미들웨어

참고 : https://expressjs.com/en/guide/using-middleware.html

미들웨어는 총 5가지 타입으로 나뉜다.

'웹 프로그래밍 > node.js' 카테고리의 다른 글

Express-session 동작 및 활용  (0) 2020.09.15
Express 구조  (0) 2020.08.31

+ Recent posts