[NodeJS] 미들웨어
Middleware
미들웨어는 익스프레스의 핵심이다. 요청과 응답의 중간에 위치하여 미들웨어 라고 부른다.
미들웨어는 요청과 응답을 조작하여 기능을 추가하기도 하고, 나쁜 요청을 걸러내기도 한다.
morgan
console에 나오는 GET / 200 51.267 ms - 1539와 같은 로그는 모두 morgan 미들웨어에서 나오는 것으로 요청에 대한 정보를 콘솔에 기록해준다.
import margan from "morgan";
app.use(margan('dev'));
와 같은 방법으로 사용할 수 있다.
함수 인자로는 dev, short, common, combined를 쓸 수 있다.
body-parser
요청의 본문을 해석해주는 미들워어. 보통 폼 데이터나 AJAX요청의 데이터를 처리하낟.
import bodyParser from "body-parser";
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
JSON은 JSON 형식의 데어터 전달 방식이고, URL-encoded는 주소형식으로 데이터를 보내는 방식이다. 보통 폼 전송이 URL-encoded방식을 사용한다.
urlencoded 메서드를 보면 { extended: false } 라는 옵션이 들어있습니다. 이 옵션이 false면 노드의 querystring모듈을 사용하여 쿼리스트링을 해석하고, true이면 qs 모듈을 사용하여 쿼리스트링을 해석합니다. qs모듈을 내장 모듈이 아니라 npm 패키지이며, querystring 모듈의 기능을 조금 더 확장한 모듈입니다.
이 패키지는 내부적으로 본문을 해석해 req.body에 추가해준다.
cookie-parser
cookie-parser는 요청에 동봉된 쿠키를 해석해줍니다.
import cookieParser from "cookie-parser";
app.use(cookieparser());
해석된 쿠키들은 req.cookies 객체에 들어갑니다.
