Back End/Node.js

[Node.js] 사용 패키지 정리 2 - body-parser module

쟈누이 2021. 10. 21. 10:44
반응형

 

 

1.  body-parser 란?


노드에서 쓰이는 모듈로 클라이언트 POST request data 의 body 로 부터 파라미터를 편리하게 추출한다.

모든 모듈을 컨트롤하는 app.js 에서만 쓰는 것이 아니라 viewer 를 연결하는 router.js 에서도 쓸 수 있다

 

처음에 app.js 에서만 사용하는 줄 알았지만 viewer 를 연결하는

router.js 에서도 사용해야 body-parser 가 데이터를 제대로 전달 할수 있다.

그렇지 않으면 undifined 가 뜨면서 데이터가 전달되지 않는다.

 

 

 

 

2.  사용법


- 설치

$ npm install body-parser

 

 

 

- API 사용

var bodyParser = require('body-parser')
The bodyParser object exposes various factories to create middlewares. All middlewares will populate the req.body property with the parsed body when the Content-Type request header matches the type option, or an empty object ( {} ) if there was no body to parse, the Content-Type was not matched, or an error occurred.

설명을 보면 body-parser 는 requset header 의 Content-Type 에 데이터 format 을 지정하면 그에 맞게 데이터를 전달하는 것 같다. 기본 값은 json 이다. 사용법은 아래처럼 해주면 된다.

 

나의 경우에는 node 의 fetch 를 사용하기 때문에 아래와 같이 데이터를 전달한다.

fetch('/hahaha', {
      method : "POST",
      headers : {
        "Content-Type" : "application/json"
      },

 

- Example

var express = require('express')
var bodyParser = require('body-parser')
 
var app = express()
 
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
 
// parse application/json
app.use(bodyParser.json())
 
app.use(function (req, res) {
  res.setHeader('Content-Type', 'text/plain')
  res.write('you posted:\n')
  res.end(JSON.stringify(req.body, null, 2))
})

 

항상 express 과 같이 사용하는 것을 명심하자.

express 는 node 에서 서버를 실행할 때 꼭 필요한 모듈이기 때문이다.

 

 

 

 

 

3. 참고 링크


https://medium.com/@chullino/1%EB%B6%84-%ED%8C%A8%ED%82%A4%EC%A7%80-%EC%86%8C%EA%B0%9C-body-parser%EB%A5%BC-%EC%86%8C%EA%B0%9C%ED%95%A9%EB%8B%88%EB%8B%A4-%ED%95%98%EC%A7%80%EB%A7%8C-body-parser%EB%A5%BC-%EC%93%B0%EC%A7%80-%EB%A7%88%EC%84%B8%EC%9A%94-bc3cbe0b2fd

 

[1분 패키지 소개] : body-parser를 소개합니다. 하지만, body-parser를 쓰지 마세요.

.

medium.com

https://www.npmjs.com/package/body-parser

 

body-parser

Node.js body parsing middleware

www.npmjs.com

 

반응형