-
nodeJS - req.params, req.query, req.bodyProgramming/NodeJS 2020. 1. 22. 00:43반응형
1. Request Properties
1-1. req.params
예를 들어 /user/:name 경로가 있으면 "name"속성을 req.params.name으로 사용할 수 있다.
https://params/user/12341234 일 경우 12341234를 받는다.
req.param은 더이상 사용하지 않음
1-2. req.query
이 속성은 경로의 각 쿼리 문자열 매개 변수에 대한 속성이 포함 된 개체다.
예를 들어 https://query/search?searchWord=구글검색 이면
searchWord 매개변수(parameter)의 구글검색 이라는 값(argument)을 가져온다.
1-3. req.body
JSON 등의 데이터를 담을때 사용한다. (주로 POST로 유저의 정보 또는 파일 업로드를 보냈을 때 )
요청 본문에 제출 된 키-값 데이터 쌍을 포함한다. 기본적으로 이는 정의되어 있지 않으며 express.json(), express.urlencoded()와 같은 미들웨어를 사용해야한다.
위의 말은 쉽게 설명하자면 req.body는 body-parser를 사용하기 전에는 default 값으로 Undefined 설정되기 때문에 body-parser를 사용하여 해결해야 오류를 뿜지 않는다.
// 예제코드 - app.js 부분 //미들웨어 app.use(bodyParser.json()) app.use(bodyParser.urlencoded({ extends: true })) ↓ ↓ // Express 4.16.0버전 부터 body-parser의 일부 기능이 익스프레스에 내장 ↓ // 아래와 같이 사용 가능하다 app.use(express.json()) app.use(express.urlencoded({ extends: true}))
extends 옵션 설명
parser가 필요한 경우도 존재
-
body-parser로 Raw, Text형식의 본문을 추가로 해석할 수 있음
form 에서는 name: value, email: value, password: value의 값을 body에 담아 POST request를 보냄
// 예제 join.pug 부분 form(action=routes.join, method="post") input(type="text", name="name", required=true) input(type="email", name="email", required=true) input(type="password", name="password", required=true) input(type="submit", value="Join")
form 에서 post method로 보낸 것을 req.body property(속성)으로 name, email, password를 받을 수 있다.
// 예제 코드 js export const postJoin = (req, res) => { const { body: { name, email, password} } = req }
참고 : https://expressjs.com/ko/api.html#req
'Programming > NodeJS' 카테고리의 다른 글
Node.js Express 라우팅, 라우트 메소드 (GET,POST 요청 처리하기) (0) 2020.02.27 Passport 구글 로그인 인증 (oauth20) - nodeJS (0) 2020.02.26 nodeJS dotenv - 환경 변수 숨기기 (0) 2020.01.18 NodeJS / pug에서 mixin 사용 (2) 2020.01.14 NodeJS Babel (0) 2020.01.06 -