티스토리 뷰
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
- 오토에버코테
- centos
- softeer java
- Kubernetes
- Linux
- react
- java
- softeer
- 현대오토에버
- 자바스크립트
- 쿠버네티스
- 리액트
- mysql
- springboot
- 코테
- 현대
- 자바코테
- 도커
- Spring
- 자바
- 전자정부프레임워크
- 코딩테스트
- 현대코테
- javascript
- Docker
- 톰캣
- tomcat
- 아파치카프카
- java 코테
- 스프링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |