미들웨어는 다음같은 구성을 가짐.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8ecf91bb-be3b-4f6b-a01c-649da05f5ff3/_2021-05-04_12-56-34.png

위 그림은 endpoint/ 이면서 , GET 요청을 받았을때 사용하는 '미들웨어'이다.

주목해야할 것은 파라미터 순서이다. req, res 는 요청/응답이며 next 는 다음 컨베이어 벨트로 넘기는 작업을 한다.

현재 미들웨어 내부에 아무일도 일어나지 않았지만,

next() 을 통해 다음 컨베이어 벨트로 넘길뿐이다.

아래 예시는 logger 를 사용하는것이다. logger 는 가장 단순한 미들웨어로 디버깅이나, 서버관리에 도움되기위해 console.log 를 적절하게 찍어주는 역할을 해준다.

특정 endpoint 가 아닌, 모든 요청에 대해 미들웨어를 붙인 예시다. 이때는 app.use 라는 메소드를 이용하고 LOGGED 가 콘솔에 찍히는지 확인한다.

const express = require('express');
const app = express();

const myLogger = function (req, res, next) {
  console.log('LOGGED'); // 이 부분을 req, res 객체를 이용해 고치면, 여러분들은 모든 요청에 대한 로그를 찍을 수 있습니다.
  next();
};

app.use(myLogger);

app.get('/', function (req, res) {
  res.send('Hello World!');
});

app.listen(3000);

미들웨어 사용