본문 바로가기

Youtube Clone/ExpressJS

Middlewares

/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는 유저 정보를 저장
      • 사용자를 인증할 때 쿠키를 검사해서 사용.

'Youtube Clone > ExpressJS' 카테고리의 다른 글

Router 쪼개기  (0) 2019.09.17
Router  (0) 2019.09.17
Babel과 nodemon  (0) 2019.09.17
GET과 POST  (0) 2019.09.17
서버 만들기  (0) 2019.09.17