GULGUL CODING

[ExpressJS] Body-parser 본문

JS/Express.JS

[ExpressJS] Body-parser

OKKK굴 2023. 3. 16. 09:08

참고사이트 : https://expressjs.com/en/resources/middleware/body-parser.html

1. Parsing / Parser

👉Parsing(파싱) 이란?

간결하게 말하면 구문분석이라고 한다.

즉, 데이터를 조립해 원하는 데이터를 빼내는 작업을 하는것을 말한다.

 

👉Parser(파서)란?

Parsing을 수행하는 프로그램을 말한다.

interpreter나 compiler의 구성요소 가운데 하나로 입력 tocken에 내재된 자료구조를 빌드하고 문법을 검사한다.

 

2.Body-parser

Node.js의 구문분석 미들웨어로써,

핸들러에게 가기 전  요청하는 본문의 데이터를 파싱한다.

.📁 body-parser 가 parsing 하는 것

  • JSON body parser
  • Raw body parser
  • Text body parser
  • URL-encoded form body parser

📁 설치

해당 프로젝트 터미널에 

$npm install body-parser

📁 사용

let bodyParser=require('body-parser')

요청 후 사용한다.

const express=require('express');
const fs=require('fs/promises');
//const pug=require('pug');
const app=express();
app.set("views","./views");//default로 pug의 경로를 views로 설정!
app.set('view engine','pug');
app.use(express.static("public"));//url Encoding

app.get("/",(req,res)=>{
    //🎃[과거 pug 사용예시]
    // let html =pug.renderFile('./views/index.pug');
    // res.write(html);
    // res.end();

    //😎[render를 이용해 간단하게 연결할 수 있다.]
    res.render('index',{a:10,b:20});
    
})

//[bodyParser 없이 쿼리스트링 받기]-------------------------------------------
const querystring=require('querystring');
app.post("/signup.do",(req,res)=>{
    let bodyQueryString="";

    //🎃 
    //req.on("data",()=>{}) : 요청헤더의 쿼리스트링을 읽어오겠다.
    req.on("data",(data)=>{
        bodyQueryString+=data;
    })
    req.on("end",()=>{
        const params=querystring.parse(bodyQueryString);
        res.send(JSON.stringify(params));
    })
})

//[bodyParser을 사용해서 같은내용 구현하기.]-------------------------------------------
const bodyParser=require("body-parser");
app.use(bodyParser.urlencoded({extended:false}));//[🍓]
add.post("/signup2.do",(req,res)=>{
    res.send(JSON.stringify(req.body));
})
/*[🍓]
req.body 필드가 추가되고  body의 쿼리스트링이 object로 들어간다.(=파싱하고있다.)
[ extended: false ] : nodejs에서 제공하는 queryString 을 사용해서 파싱 하겠다.
[ extended: true ] : 확장 모듈(외부모듈)인 qs를 사용해서 파싱하겠다.
 */

app.listen(8887,()=>{
    console.log("http://localhost:8887 미들웨어로 bodyParser 적용");
})

'JS > Express.JS' 카테고리의 다른 글

[Express.Js] Express MiddleWare  (0) 2023.03.14
[Express.Js] Hello Express Js!  (0) 2023.03.02
Comments