TIL 43 | Express 미들웨어 사용하기

dabin *.◟(ˊᗨˋ)◞.*·2021년 9월 23일
0

Node.js

목록 보기
6/11
post-thumbnail
post-custom-banner

생활코딩 강의를 보고 작성하였습니다.

미들웨어란?

소프트웨어를 만들 때 처음부터 끝까지 모두 만드는 경우는 거의 없다. 이미 누군가가('나'일수도 있고!) 만들어 놓은 소프트웨어를 부품으로 사용해 나의 소프트웨어를 만들어간다. 이 개념에 따르면, Express에서는 Express측이 아닌 다른 누군가 만들어 놓은 소프트웨어가 Third-party middleware다.

[Express의 Third-party 미들웨어 목록]
https://expressjs.com/ko/resources/middleware.html

body-parser

[주의] express 4.16버전부터 body-parser가 내장되었기 때문에 따로 import 해주지 않아도 된다!!

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

//설치
npm install body-parser

//모듈 로드
const bodyParser = require('body-parser')

//적용
app.use(bodyParser.urlencoded({ extended: false }))
/*
  bodyParser.urlencoded({ extended: false })는 
  body-parser가 만들어내는 미들웨어를 표현하는 표현식.
  사용자가 전달한 post 데이터를 내부적으로 분석해서 모든 데이터를 가져와 path에 해당하는 콜백을 호출.
  호출하게 되면 첫번째 인자로 전달된 req에 body를 만들어줌.(원래 없어요)
*/

/* 원래코드
app.post('/create', (req, res) => {
  let body = '';
  req.on('data', data => {
    body = body + data;
  });
  req.on('end', () => {
    let post = qs.parse(body);
    let title = post.title;
    let description = post.description;
    fs.writeFile(`data/${title}`, description, 'utf8', err => {
      res.writeHead(302, {Location: encodeURI(`/page/${title}`)});
      res.end();
    });
  });
});
*/

app.post('/create', (req, res) => {
  let post = req.body;
  let title = post.title;
  let description = post.description;
  fs.writeFile(`data/${title}`, description, 'utf8', err => {
    res.writeHead(302, {Location: encodeURI(`/page/${title}`)});
    res.end();
  });
});

Compression

http://expressjs.com/en/resources/middleware/compression.html

http 요청시 데이터를 압축한다. 압축을 하고 푸는 과정이 필요하지만 네트워크 전송 비용보다 싸고 빠르기 때문에 압축 방식을 많이 사용한다.

//설치
npm install compression --save

//모듈 로드
const compression = require('compression')

//적용
app.use(compression());
//데이터가 압축되어 전송된다. 

profile
모르는것투성이
post-custom-banner

0개의 댓글