song.log

[Node.js] Express 미들웨어 사용 : body-parser, compression 본문

DevLog/Node.js

[Node.js] Express 미들웨어 사용 : body-parser, compression

SingaKorean 2019. 12. 23. 20:58
반응형

1. Express의 Third-party middleware - body-parser :

https://expressjs.com/en/resources/middleware/body-parser.html

Third-party middleware는 Express가 제공하는 것이 아닌 제 3자가 만들어낸 소프트웨어를 칭하는 것이다.

그 중 post 방식으로 전송된 데이터를 body-parser라는 미들웨어를 통해 가져오는 방식에 대해서 보겠다. 

 

우리가 지난 포스팅에 post 방식의 데이터를 가져올 때는 아래의 코드를 사용했다.

app.post('/create_process', function(request, response){
  var body = '';
  request.on('data',function(data){
    body += data;
  });
  request.on('end',function(){
    var post = qs.parse(body);
    var title = post.title;
    var description = post.description;
    
    fs.writeFile(`data/${title}`,description,'utf-8',function(err){
      response.writeHead(302,
      {Location: `/`});
      response.end();
    });
  });
});

 

먼저 body-parser를 설치하고

 

npm install body-parser --save

 

bodyParser를 사용할 수 있도록 코드 입력. 

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));

 

request객체의 body property로 접근해서 post로 전송 받은 데이터를 가져오는 형식으로 수정

app.post('/create_process', function(request, response){
    var post = request.body;
    var title = post.title;
    var description = post.description;
    
    fs.writeFile(`data/${title}`,description,'utf-8',function(err){
      response.writeHead(302, {Location: `/`});
      response.end();
    });
});

 

2 Express의 Third-party middleware - compression :

 

웹 페이지의 데이터 크기가 어마어마할 때 웹브라우저에서 이 페이지를 열 때 필요로 하는 용량이 굉장히 클 것이다. 

이 때, 이 페이지를 압축하기 위한 미들웨어가 'compression'

 

compression 설치 : 

npm install compression --save

 

 

사용 방법 : 

var bodyParser = require('body-parser');
var compression = require('compression');

app.use(bodyParser.urlencoded({ extended: false }));
app.use(compression());

 

용량이 줄어들음을 확인 할 수 있다. 

 

content-encoding : gzip 으로 되면서 용량이 압축됨

 

 

 

 

참조한 생활코딩 URL :

https://opentutorials.org/module/3590/21397

https://opentutorials.org/module/3590/21398

 

 

반응형
Comments