middleware
express의 모든 route와 같은 것들은 connection을 다루는 건 모두 request, respose, next를 가진다. 마지막에 실행될 함수엔 next가 안들어가도 되지만, 중간에 들어가는 middleware에는 next필요하다.
마지막 함수는 return을 하는 함수들이다.
express는 원하는 만큼 많은 middleware를 가질수 있는데, 편리한 기능들을 제공해주기 때문이다. 로그인 여부를 체크하거나, 파일을 전송할때 중간에 가로체거나, 로그를 남기도록 하는 등 편리하게 해준다.
use를 이용하면 middleware를 전역적으로 사용 가능하고, 특정 route에 집어넣을수도 있다.
app.use
미들웨어란 ? 라우트(유저)와 실행하는 콜백함수(응답) 사이에서 동작하는 함수.
적용방법은,
전역으로 적용하는 = app.use() ;
각각 적용하는 = 라우팅 과 콜백함수 사이에 쓰는방법;
두가지.
모든 미들웨어함수는 유저- 응답 사이에서 동작하므로 미들웨어가 끝나고 난 뒤, 응답(콜백함수)를 실행하기 위해서 next() 가 필수적임. 혹은 미들웨어에서 중단시킬 수 있음.
주요 미들웨어로는
Morgan - 로그를 남겨줌
helmet - 기초보안담당함
cookieParser - 쿠키를 다룰 수 있음
bodyParser - form데이터를 서버로 받아와서 활용가능함.