Express는 client의 요청을 받아 처리할 때 미들웨어라는 개념을 사용한다. Express 애프리케이션은 기본적으로 일련의 미들웨어 함수 호출이다.

 

 

 

미들웨어란 ?

미들웨어 함수는 req(요청) 객체, res(응답) 객체, 그리고 어플리케이션 요청-응답 사이클 도중 그 다음의 미들웨어 함수에 대한 엑세스 권한을 갖는 함수이다.

미들웨어란 간단하게 말하면 클라이언트에게 요청이 오고 그 요청을 보내기 위해 응답하려는 중간(미들)에 목적에 맞게 처리를 하는, 말하자면 거쳐가는 함수들이라고 보면 되겠다.

예를 들어서 요청-응답 도중에 시간을 콘솔 창에 남기고 싶으면 미들웨어 함수를 중간에 넣어서 표시를 한 뒤에 계속해서 다음 미들웨어들을 처리할 수 있도록 하는 것이다.

다음 미들웨어 함수에 대한 엑세스는 next 함수를 이용해서 다음 미들웨어로 현재 요청을 넘길 수 있다.

next라는 말에서 알 수 있듯이 next를 통해 미들웨어는 순차적으로 처리된다. 

 

 

 

 

애플리케이션 레벨 미들웨어

app.use에서 선언된 function이 미들웨어이다.

const express = require('express');
const app = express();
app.listen(3000);

app.use(function(req, res){
  res.send('Express Server!!!');
});

 

 

 

 

한 개의 요청을 여러개의 미들웨어가 처리할 수 있다. next 인자를 처리하면 하위 스택을 처리하게 된다.

 

 

 

 

 

라우트를 사용하는 방법, client 요청을 http method 별로 처리 가능하다.

get 이면 get, post 면 post

 

 

 

 

 

next를 사용해서 미들웨어를 여러개 실행할 수 있다. 하나의 경로에 여러개의 라우트를 정의하는 것도 가능하다.

그러나 동일한 메소드를 2개이상 만들고 앞에서 response를 처리하면 다음 메소드는 실행되지 않는다.

 

 

 

 

 

PS : nodemon

nodemon을 설치하면 서버를 껏다 켜지 않아도 저장한 것이 적용이 되어 편리하다

npm install -g nodemon@2.0.9

터미널에서 이 명령어로 설치하면 된다.

그 후 nodemon index로 실행한다.

+ Recent posts