[Express] express.json 메소드 이해하기

BE/Express 2023. 5. 13.
  • app.use(express.json())의 역할
  • express 내부 코드에서 json 메소드를 찾아보자
  • json 메소드는 사실...

 


 

 

app.use(express.json()); 의 역할

HTTP에서 보내오는 JSON 형식의 요청을 JavaScript 객체로 변환하여 사용하게 해준다.

사용 방법은 아래 코드와 같이 사용하면 된다.

 

const express = require('express');
const app = express();

app.use(express.json());

 


express 내부 코드에서 json 메소드를 찾아보자

'exports.json = bodyParser.json' 에서 exports는 넘어가도 상관없다. 다음 내용으로 넘어가자

express.js 안에 코드에서 json 메소드를 찾았다.

 

 

json 메소드는 사실...

여기서 'bodyParser.json'에서 bodyParser은 express 패키지가 의존하고 있는 다른 패키지의 객체이다.

그 객체는 바로 'body-parser'이다.

 

 

body-parser란?

이 패키지에서는 서버로 들어오는 요청(request)이 라우트 핸들러에 도달하기 전에 리퀘스트 바디(request bodies)를 파싱(parsing) 해주는 기능을 가진 패키지라고 한다.                       

참고-[express] 라우트 핸들러

 

 

...

body-parser 코드 찾기 생략

...

 

 

body-parser패키지의 jsonParser() 함수

우리가 app.use(express.json())은 body-parser의 내부로 들어가 보면 사실 app.use(jsonParser)와 같은 뜻 이라것을 알 수 있다.

function jsonParser (req, res, nent) {
  ...
  ...
}

 

 

jsonParser는 파라미터로 넘어오는 객체들을 활용하여 처리하고 리퀘스트(request)를 그 다음 핸들러 혹은 미들웨어로 넘겨준다.