1.parser 미들웨어 사용
미들웨어란?? express에서 다른사람이 만든 소프트웨어를 사용하는 것
expressjs.com에서
guide -> useing middleware -> Third-party middleware
-> body-parser
1. 기존의 app.post('/create_process', ~){}의 코드를 body-parser로 대체하여 써보자
일단 설치
npm install body-parser --save
*body라는 것은 웹브라우져 쪽에서 요청한 정보의 본체를 body라고함
그 본체를 설명하는 데이터를 header라고 함
바로 그 본체인 데이터를 parser 즉 분석해서 우리가 필요한 형태로 가공해주는 프로그램이
body-parser이다
2. 그리고 이것을 모듈로 불러온다
var bodyParser -require('body-parser')
expressjs.com에서 example을 보면 사용법이 있는데
app.use(bodyParser.urlencoded({etended false}));
이를 호출하면 우리가 무엇을 할 수 있냐
main.js가 실행될때마다 즉 사용자가 요청할떄마다 bodyParser.urlencoded({etended false})
의 코드에 의해서 만들어진 미들웨어(body-parser middleware)가 실행되는것이다
이놈이 내부적으로 어떤일을 하냐
사용자가 전송한 post데이터를 내부적으로 분석해서 기존의 코드처럼
모든 데이터를 가져온 다음에 지정된 경로(여기서는 /create_process)에 콜백함수를 호출하도록 약속되어 있다
그리고 그 함수를 요청하면서 이 콜백의 첫번째 인자인 request의 파라미터의 변수에
body라는 property(속성)를 주게 만들며 이 것을 바로 body-parser라는 미들웨어가 만들어준다
즉 request.body라는 것이 생성되며
var post=request.body;
라고하면 전송받은 post정보를 받아온다
2.compression 미들웨어를 이용해서 컨텐츠를 압축해서 전송하는 방법
웹서버가 웹브라우져에게 응답할떄 그 데이터를 압축하는 것
예를들면 zip와 같은 원리로 압축을해서 응답하면서
이 응답은 zip방식으로 압축했으니까 그걸로 압축을 푸시면되요 라고 응답을 해주는 것이고
이걸 웹브라우져가 받아서 그 압축방식에 따라 그걸을 해제해서 보게되는 것이다
압축을 하고 푸는 과정이 필요하지만 대용량의 네트워크 전송비용보다 경제적이기 떄문에 사용함
1.expressjs.com의 가이드를 통해서
npm install compression --save
2.var compression = require('compression')
3.app.use(compression())
app.use(compression())를 통해 compression() 이라는 함수를 호출하면 얘가 미들웨어를 리턴하도록 약속되어 있고
그 미들웨어가 앱유즈를 통해서 장착되며
우리 애플리케이션은 요청이 들어올때마다
바디파서 미들웨어가 실행되고 컴프레션 미들웨어가 실행되도록 약속되어 있는 것
*favicon.ico 에러뜨는데 이유는 모르겠다 ㅠ
'WebApp > Node.js-express' 카테고리의 다른 글
Node.js-express-error처리 (0) | 2020.09.15 |
---|---|
Node.js-express-정적인 파일의 서비스 (0) | 2020.09.15 |
Node.js-express-미들웨어 실행순서 (0) | 2020.09.14 |
Node.js-express -미들웨어 생산 (0) | 2020.09.12 |
Node.js- express (0) | 2020.09.10 |