<Express.js> 여러 Middleware 소개 및 적용

오늘은 총 4개의 middleware를 알아보겠습니다.

Morgan

Morgan이란?

무슨 일이 어디서 일어났는지 로그를 제공하는 middleware라고 정의하겠습니다.

Morgan 설치 및 사용

%npm install morgan을 터미널에 입력합니다.
사용 방법은 아래와 같습니다. morgan은 logging option을 받는데요. 저희가 사용할 dev tiny, common, combined등과 같은 여러 option이 있습니다.
dev 옵션은 Method, URL, status code를 제공합니다.

import logger from 'morgan';
app.use(morgan('dev'); // dev 외에도 여러 옵션이 있습니다.

위와 같이 middleware에 morgan을 추가하면 사용자가 접속할때마다 로그를 띄워줍니다.

Helmet

Helmet이란?

express에 보안을 더해주는 middleware입니다.

Helmet 설치 및 사용

%npm install helmet을 터미널에 입력합니다. 사용 방법은 아래와 같습니다.

import helmet from 'helmet';
app.use(helmet());

cookie-parser & body-parser

cookie-parser란?

cookie를 전달받아서 사용할 수 있도록 만들어주는 middleware입니다. 사용자 인증 등에서 쿠키를 검사할 때 필요합니다.

body-parser란?

body-parser는 사용자가 웹사이트로 전달하는 정보를 검사하는 middleware입니다. 사용자가 form에 정보를 담아서 전송한 정보에 쉽게 접근하기 위한 middleware입니다. 파일 업로드, 로그인, 회원가입등을 할때 form에 정보를 담아서 보내면 이 정보를 req.body에 담아줍니다.

  • bodyParser.json()
    body-parser가 json을 처리하도록 하는 함수입니다.

  • bodyParser.urlencoded()
    body-parser가 form에서 받은 데이터를 처리하도록 하는 함수입니다. 인코딩은 default로 UTF-8로 해줍니다.

  • 예시

const postUpload = (req, res) => {
	console.log(req.body);
}

이제 req.body에 사용자가 보낸 request의 정보가 담기게 됩니다.

설치 및 사용

  • %npm install cookie-parser
  • %npm install body-parser
import cookieParser from 'cookie-parser';
import bodyParser from 'body-parser';

app.use(cookieParser());
app.use(bodyParser.json();
app.use(bodyParser.urlencoded({extended: true});

마지막으로 middleware끼리도 작성 순서(위에서 아래)로 동작하기 때문에 helmet과 morgan이 parser들 앞에 와야 합니다.

적용

project

youtube
 *|index.js

index.js

import morgan from 'morgan';
import helmet from 'helmet';
import cookieParser from 'cookie-parser';
import bodyParser from 'body-parser';

app.use(helmet());
app.use(morgan("dev"));
app.use(cookieParser());
app.use(bodyParser.json();
app.use(bodyParser.urlencoded({extended: true});

좋은 웹페이지 즐겨찾기