IT's Jenna

Express 환경 사용하기 2 - 미들웨어 본문

Backend/Backend 기본

Express 환경 사용하기 2 - 미들웨어

developer Jenna 2021. 1. 19. 22:54

Express 환경을 사용할 때 반드시 알아야 하는 개념이 미들웨어 함수이다.

 

이전 포스팅에서 언급한 Express에 대한 개념을 미들웨어를 중심으로 다시 설명하면 아래와 같다.

 

  • Express : 자체적으로 최소한의 기능을 가지고 있는 라우팅 및 미들웨어 웹 프레임워크, Express의 app.js은 일련의 미들웨어 함수 호출로 구성되어 있다.

Express의 app.js 내부에 보면 express에 필요한 모듈들을 모두 require로 불러와서 express라는 변수에 넣어준다.

Express 모듈에는 router, json 등 웹 앱을 구성하는데 필요한 method들이 모여있다. express()는 express모듈에서 export 된 최상위 함수이다.

var express = require('express')
var app = express()

나중에 router를 설정할 때는 아래와 같이 router() 함수를 불러서 설정한다.

var router = express.Router();

 

미들웨어 함수란? 

  • Server와 Client사이에서 요청, 응답을 처리하는 함수

미들웨어 함수의 구성

  • 아래의 그림에서 미들웨어 함수는 function 이하 부분이다.
  • 미들웨어 함수는 클라이언트의 요청, 서버의 응답, 다음 미들웨어 함수를 동작시킬지의 여부 이렇게 3개의 인수로 구성되어 있다.

<미들웨어 함수의 구성>

미들웨어 함수 사용법

  • 함수 작성 후, app.use(function name)을 입력하거나, 위 구성처럼 app.method의 callback함수로 사용할 수 있다.
  • 미들웨어 함수에 next()를 넣어주면 해당 미들웨어 동작후 다음 미들웨어도 동작하게끔 만들어준다
  • 같은 라우팅 주소로 연결된 미들웨어끼리 연결된다.
  • next()가 들어있지 않은 경우 해당 미들웨어 함수에서 동작은 종료된다.
  • 미들웨어 함수는 스크립트 위에서부터 순차적으로 진행되기 때문에 순서에 주의하며 사용해야 한다.
var myLogger = function (req, res, next) {
  console.log('LOGGED');
  next(); // 다음 미들웨어 함수로 이동
};

app.use(myLogger);

app.get('/', function (req, res) { 
  res.send('Hello World!'); //미들웨어 종료
});

 

<참고>

http://expressjs.com/ko/4x/api.html#express

https://expressjs.com/ko/guide/writing-middleware.html

'Backend > Backend 기본' 카테고리의 다른 글

Injection attak  (0) 2021.01.23
Express 환경 사용하기 3 - 라우팅  (0) 2021.01.20
Express 환경 사용하기 1  (0) 2021.01.18
NodeJS 사용 시 필요한 패키지 및 사이트  (0) 2021.01.13
Server 2  (0) 2021.01.13
Comments