본문 바로가기

NodeJS

express 미들웨어

const express = require("express");
const app = express();
const port = 3000;
//   별도의 다른 모듈을 쓰지 않고 GET 라우트 정의 방법과 콜백 함수를 제공.
app.get('/', (req, res) => {
  res.send("Hello express module");
  // send 모듈은 http 모듈의 write와 비슷한 역할.
});
app.listen(3000, () => {
  console.log(`Server is running port ${port}!`);
});

Expresshttp 모듈도 지원한다. wirte를 사용했다면 반드시

end로 마무리 해야 하는 것을 잊지 말기.

 


미들웨어

 

Express와 같은 웹 프레임워크는 보통 미들웨어로 운영됩니다. 프레임워크의 위치가 웹상의 HTTPNode.js 플랫폼 사이이기 때문입니다.

 

미들웨어는 애플리케이션 로직과의 데이터 교환 전에 대기하고, 분석하고, 필터링하고 HTTP 통신을 다루는 코드를 일컫는 일반 용어입니다.

 

use

express 모듈을 통해 requestresponse 과정 중에 다른 로직을 실행할 수 있도록 분리된 함수를 '미들웨어'라고 합니다. use() 미들웨어 함수를 사용해서 필요한 요청에 따른 처리를 할 수 있습니다.

 

http 모듈과 달리 use() 함수를 사용해서 이벤트 리스너를 연결합니다.

 

미들웨어를 사용함으로써 특정한 목적에 맞는 모듈을 분리해 재활용 할 수 있습니다. 앞으로 자주 사용되는 express 모듈 미들웨어에 대해 알아보겠습니다.

 

static

express 모듈에서는 static 미들웨어를 활용하여 손쉽게 이미지 파일, javascript 파일, css 파일을 처리할 수 있습니다.

 

 

body parser

POST 요청을 처리할 때 사용자가 보낸 데이터를 추출할 수 있습니다. 또한 request 객체에 body 속성이 부여됩니다.

body parser 미들웨어는 application/x=www-form-urlencoded 인코딩 방식만 지원합니다.

 

router

router 모듈은 라우팅을 지원하는 라이브러리입니다. 라우팅은 애플리케이션 엔드 포인트 (URI)의 정의, URI가 클라이언트 요청에 응답하는 방식을 말합니다. 참고로 express 모듈 내에 페이지 라우팅 기능이 기본적으로 내장되어 있습니다.

 

get() : GET 요청 발생 시 이벤트 리스너 지정

post() : POST 요청 발생 시 이벤트 리스너 지정

all() : 모든 요청 발생 시 이벤트 리스너 지정

put() : PUT 요청 발생 시 이벤트 리스너 지정

delete() : DELETE 요청 발생시 이벤트 리스너 지정

 

http://expressjs.com/ko/guide/routing.html

 

morgan

로그를 남기고 보관, 로깅. https://github.com/expressjs/morgan

 

cookie-parser

쿠키 추출, 쿠키란 인터넷 사용자가 어떠한 웹 사이트를 방문 할 경우 그 사이트가 사용하고 있는 서버를 통해 인터넷 사용자의 컴퓨터에 저장되는 작은 기록 정보 파일입니다. 일정 기간 동안 데이터를 저장할 수 있기 때문에 로그인 상태를 일정 기간 유지해야 하는 웹 사이트에서 사용됩니다.

 

connect-muliparty

웹 브라우저에서 파일을 전송할 때 multipart/form-data 인코딩 방식을 사용합니다. body parser 미들웨어에서는 multipart/form-data를 지원하지 않습니다. 따라서 multipart/form-data 인코딩 방식으로 파일을 업로드 할 수 있게 해주는 미들웨어가 바로 connect-muliparty입니다. multipart/form-data 인코딩을 지원해주 connect-busboy, multer 등 여러 미들웨어가 있습니다. http://expressjs.com/ko/resources/middleware.html

 

exress-session

세션은 서버에 사용자가 로그인했는지 여부 등의 정보를 저장하는 데 사용됩니다. 클라이언트에 세션 식별자 쿠키를 부여하고 그 쿠키와 대응되는 저장소에 데이터를 저장합니다.

 

express-session은 세션을 생성할 때 사용하는 미들웨어 입니다.

 

 

 

728x90
300x250