[Node.js] 미들웨어1

Posted by 신희준 on November 8, 2017


모덴웹을 위한 Javascript, JQuery입문 [윤인성 지음] 참고


2017 - 11 - 08 (수)

  • 미들웨어

  • 미들웨어


    // $ npm install express - express 프레임웤설치 후
    var express = require('express');
    //express 모듈을 추출한다.
    var app = express(); //웹 서버 생성
    app.listen(포트번호, function(){
      console.log('웹서버 작동')
    });// 웹서버를 실행한다.
    


    위와 같은 형태로 간단하게 서버를 실행시킬 수 있었다.

    //위와같이 app이라는 변수에 서버가 생성되었다.
    app.use(function(request, response){
      response.send('<h1>안녕하세요</h1>')
    });
    //localhost 접속시 response 객체에 다음 내용을 싫어서 보낸다.
    


    위에서 사용한 app.use() 메서드 안의 콜백함수는 request 이벤트 리스너입니다. request 이벤트 리스너는 위와 같은 형태로 (app.use()를 활용하여) 사용자가 서버 접속시 자동으로 실행시켜준다.


    app.use(function(request, response){
      console.console.log('first');
      next();
    });
    app.use(function(request, response){
      console.console.log('second');
      next();
    });
    app.use(function(request, response){
      response.send('<h1>hello middleware </h1>');
    });
    
    


    위 코드를 추가하여 서버를 실행시키고, localhost로 서버에 접속한다면, 찍히는 로그는 다음과 같다.

    first
    second
    first
    second
    

    app.use 는 서버 접속시 실행되며 각각의 콜백함수를 통과하면서 log를 찍는다. 이렇게 사용자의 요청을 처리하면서 지나가는 app.use() 메서드의 콜백함수 (request 이벤트리스너가 될 것이다.) 를 미들웨어라고 한다.


    • 미들웨어의 데이터 전달 보기


    app.use(function(request, response){
      request.test = '1번 콜백 request'
      response.test = '1번 콜백 response'
      next();
    })
    app.use(function(request, response){
      response.send('<h1>+request.test+ "::" + response.test</h1>')
    })
    
    //localhost 접속시 1번 콜백 request :: 1번 콜백 response 가 출력된다.
    
    • 미들웨어의 활용


    //이미 개발자들이 미들웨어를 활용하여 다양한 함수를 만들어 놓았다.
    
    var app = express();
    app.use(express.logger());
    app.use(express.bodyParser());
    app.use(express.cookieParser());
    app.use(express.session());
    app.use(express.static('public'));
    // 이 외에도 정말 많은 미들웨어들이 있다.