본문 바로가기
WEB/Nodejs-express

[Nodejs-express] 미들웨어, body-parser, compression

by Ellen571 2020. 8. 8.

[생활코딩] Express 미들웨어의 사용

 

 

미들웨어(Middleware)

- 다른 사람이 만든 소프트웨어를 부품으로 사용해 생산성을 높임

 

서드파티 미들웨어(Third-party Middleware)

- 다른 사람이 만들고 오피셜하지 않은 소프트웨어

 

 

미들웨어 사용하기

 

body-parser : 웹 브라우저에서 요청한 본체(body)를 분석해서 필요한 형태로 가공할 수 있음

- 설치 : npm install body-parser --save

- api : var bodyParser = require('body-parser');

- 사용 : app.use(bodyParser.urlencoded({ extended: false }));

  -> app.use를 통해 bodyParser 모듈을 호출

  -> bodyParser는 사용자가 전송한 post를 분석해서 app.post(인자1, 인자2)의 콜백을 호출

  -> 콜백의 첫번째 인자엔 '인자.body'가 자동으로 붙어 값을 저장

  -> app.post(request, response)이면 var post = request.body; 로 사용됨

 

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

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

app.post('/create_process', function(req, res){
  var post = req.body;
  var title = post.title;
  var description = post.description;
  fs.writeFile(`data/${title}`, description, 'utf8', function(err){
    res.redirect(`/page/${title}`);
  });
});

app.post('/update_process', function(req, res){
  var post = req.body;
  var id = post.id;
  var title = post.title;
  var description = post.description;
  fs.rename(`data/${id}`, `data/${title}`, function(error){
    fs.writeFile(`data/${title}`, description, 'utf8', function(err){
      res.redirect(`/page/${title}`);
    });
  });
});

app.post('/delete_process', function(req, res){
  var post = req.body;
  var id = post.id;
  var filteredId = path.parse(id).base;
  fs.unlink(`data/${filteredId}`, function(error){
    res.redirect(`/`);
  });
});

 

 

compression : 웹서버가 받은 데이터를 압축하고 웹브라우저에 전달

- 사용자들이 큰용량의 글을 등록한다면 처리하는데 비용가 시간이 들어감

- 웹서버가 웹브라우저에 응답할 때 압축된 데이터를 전달하고 웹브라우저는 받은 데이터를 압축해제함

- 설치 : npm install compression --save

- api : var compression = require('compression');

- 사용 : app.use(compression());

반응형