티스토리 뷰

728x90

body-parser

body-parser는 핸들러가 req.body에 접근하기 전에 들어오는 요청의 바디 값을 파싱해주는 Node.js 미들웨어이다.

 

body-parser설치

$ npm install body-parser

API

var bodyParser = requrie('body-parser')

메소드

내가 이해한 바로는 bodyParser.json은 기본으로 Content-Type이 'application/json'인 데이터를 받아서 파싱해주고, 

bodyParser.urlencoded는 기본으로 Content-Type이 'application/x-www-form-urlencoded '를 받아서 파싱해준다.

그러나 type옵션을 통해서 어떤 미디어타입을 파싱할 것인지 변경할 수 있다. 

 

1️⃣  bodyPaser.json([options]) 

- 기본으로 요청값 header의 Content-Type 이 'application/json'인 데이터를 받아서 파싱해준다. 

-options : inflate/limit/reviver/strict/type/verify

* inflate : 기본값 true, true인 경우 압축 된 바디를 풀어주고, false인경우 압축 된 바디는 거절된다. 

* limit : request body의 크기를 결정. 기본값 100kb

* strict : true값과 false 값을 가질 수 있는데, true인 경우에는 오직 array와 object형식만 받고, false인 경우는 JSON.parse가 받아 들이는 모든 것을 받을 수 있다. 기본값 true  

 

2️⃣  bodyPaser.urlencoded([options]) 

- 기본으로 요청값 header의 Content-Type 이 'application/x-www-form-urlencoded '인 데이터를 받아서 파싱해준다.

        ✅   application/x-www-form-urlencoded ? 

                - &으로 분리되고, "=" 기호로 값과 키를 연결하는 key-value tuple로 인코딩되는 값.

-options : extended/inflate/limit/parameterLimit/type/verify

중요한 option 값은 extended인데, 이 값은 어떤 라이브러리를 사용하여 파싱할 것인지를 결정한다. 

true인 경우 qs 라이브러리를 사용하고 false인 경우 querystring 라이브러리를 사용한다.

 

📁 qs라이브러리 사용법

https://www.npmjs.com/package/qs#readme

📁  query-string  라이브러리 사용법 

https://www.npmjs.com/package/query-string

내코드

import express from 'express';
import bodyParser from 'body-parser';

const app = express();

app.use(bodyParser.json({limit:"30mb", extended : true}));
app.use(bodyParser.urlencoded({limit:"30mb", extended : true}));

 

cors

cors는 Connect/Express 미들웨어를 제공하는 node.js패키지이다.

✅  CORS(Cross-origin 리소스 공유)?

      - 브라우저에서 실행 중인 스크립트에서 시작되는 cross-origin HTTP 요청을 제한하는 브라우저 보안 기능

cors설치

npm install cors

사용법

//모든 CORS요청 활성화
var cors= reuqire('cors');
app.use(cors());

cors()안에는 설정값이 들어갈 수 있다.

var express = require('express')
var cors = require('cors')
var app = express()

var corsOptions = {
  origin: 'http://example.com',
  optionsSuccessStatus: 200
}

app.get('/products/:id', cors(corsOptions), function (req, res, next) {
  res.json({msg: 'This is CORS-enabled for only example.com.'})
})

app.listen(80, function () {
  console.log('CORS-enabled web server listening on port 80')
})

'프로젝트 > MERN Application' 카테고리의 다른 글

Express  (0) 2022.01.30
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함