본문 바로가기
Back-End/Express

[Express] json()과 urlencoded() 메소드에 관하여

by SeanK 2022. 1. 6.

오늘은 json()과 urlencoded() 메서드에 대해 알아보자

 

본 포스팅은 아래 블로그를 참조했으니 참고하길 바란다. 

https://dev.to/griffitp12/express-s-json-and-urlencoded-explained-1m7o

 

Express's json() and urlencoded() Explained

Express is a Node.js framework best known by beginners for simplifying syntax in building basic back-...

dev.to

 

 

Express's json() and urlencoded() Explained

 

1) json()과 urlencoded()는 미들웨어 함수

 

미들웨어란 무엇일까?

 

미들웨어는 서버가 클라이언트로 부터 요청을 받으면 응답을 보내는 그 사이에 호출되는 코드 조각이다. 미들웨어는 아래와 같이 심플한 로그가 될 수도 있고 들어와서 나가는 데이터를 변형하는 ( 예를 들어 .json() 혹은 .urlencoded()와 같은) 여러 가지 형태가 있다.

 

console.log('server listening on port ${port})

 

2) json()과 urlencoded()는 요청(request)을 파싱

 

이 두 메소드는 req 객체에서 데이터를 파싱하는 역할을 한다. .json()과 .urlencoded()의 사용법은 서버 요청으로 보내는 데이터에 따라 나뉜다. 

 

서버 호출의 req 쪽에서 사용되기 때문에, POST나 PUT 혹은 데이터를 가지는 어떠한 요청에만 필요하다. GET이나 DELETE 요청에는 필요하지 않다. 

 

우연히 이 둘은 모두 body-parser라는 미들웨어 안의 메소드였는데, 이 미들웨어는 Express로부터 원래는 떨어져 나온 별개의 미들웨어였다. 이후 Express 4.16.0 버전부터 express.FUNCTIONNAME() 문법 안에 들어가게 되었다. 

 

그래서 정확하게 어떻게 사용 할 수 있을까?

 

.json()

 

Express.json()은 request안의 데이터를 JSON의 형태로 파싱(해석)한다. 

{"Name": "Pikachu", "Type": "Banana", "Number In Stable": 12}

 

.urlencoded()

 

Express.urlencoded()는 request안의 데이터를 URL로 인코딩하여 파싱(해석)한다. 보통은 스트링이나 배열의 형식이다. 

.../Name=Pikachu&Type=Banana&Number+In+Stable=12

 

호출 방법

 

express.json()

or

express.urlencoded()

 

하지만 만약 서버로 오는 매 요청마다 사용하고 싶다면 app.use를 사용한다. 

 

app.use(express.json())

or 

app.use(express.urlencoded())

 

 

'Back-End > Express' 카테고리의 다른 글

[Express] res.send와 res.json의 차이  (0) 2022.01.04
[Express] CORS Configuration Options  (0) 2021.12.27