/home에 접근하면 betweenHome을 실행한 뒤 handleHome을 호출한다.
- 미들웨어는 유저의 요청과 서버의 응답 사이에서 작동하는 함수이다.
- 유저의 로그인 여부를 판단하거나, IP주소를 체크하거나, 연결을 중간에서 가로채는 등 다양한 역할 가능.
- 원하는 만큼 배치할 수 있다.
- next()를 써서 다음 함수를 호출한다.
- 미들웨어는 위에서부터 차례대로 호출되므로 위치가 중요하다.
- 미들웨어에 res.send()를 넣으면 다음 함수를 호출하지 않고 연결을 끊는다.
어느 라우터에 접근하든 미들웨어(betweenHome)를 거친다.
/profile 라우터에 접근하기 전에만 미들웨어(betweenHome)를 거친다.
- Middlewares
- morgan: logging을 위해.
- logging이란 무슨 일이 어디서 일어났는지 기록하는 것
- npm install morgan
- import morgan from "morgan"
- app.use(morgan("dev"));
- 터미널에 [GET /profile 304 2.547 ms - -] 이런식으로 출력되면 정상
- helmet: 보안을 위해
- npm install helmet
- import helmet from "helmet"
- app.use(helmet());
- 같은 방식으로 body-parser와 cookie-parser 미들웨어 설치
- 누군가 form을 채워서 서버로 전송했을 때, 서버는 그 데이터(request object)에 접근해야한다.
- bodyParser는 사용자가 웹사이트로 전달하는 정보를 검사.
- request 정보에서 form이나 json 형태로 된 body를 검사.
- cookieParser는 유저 정보를 저장
- 사용자를 인증할 때 쿠키를 검사해서 사용.