[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는 요청에 동봉된 쿠키를 해석해줍니다.

import cookieParser from "cookie-parser";

app.use(cookieparser());

해석된 쿠키들은 req.cookies 객체에 들어갑니다.




© 2020.09. by Zeeen

Powered by jin-hw