Web/Node.js
[Node.js] express.urlencoded는 뭘까?
choice91
2021. 9. 16. 22:39
728x90
반응형
📌 POST 요청 보내기
form(method="POST", action="/post/edit")
input(name="title", placeholder="Title", required)
input(value="Save", type="submit")
pug로 만든 간단한 form이다.
실행하면 아래처럼 나온다.
입력을 하고 Save버튼을 누르면 /post/edit으로 전송한다. (단, form으로 전송할 때에는 input에 반드시 name이 있어야한다)
console.log(req.body); // undefined
콘솔로 찍어보면 undefined가 뜬다.
📌 urlencoded
app.js에서 라우터 위에 아래코드를 작성해주면 콘솔로 찍었을 때 브라우저에서 입력한 값을 제대로 나온다.
extended는 기본이 true이므로 적어줘도되고 안적어줘도된다.
app.use(express.urlencoded({ extended: true }));
그리고 다시 req.body를 콘솔에 출력하면 아래와 같은 결과가 나온다.
{ title: 'hello' }
urlencoded({ extended: true 혹은 false })에서
{ extended: true }일 경우, 객체 형태로 전달된 데이터 내에서 또 다른 중첩된 객체를 허용한다는 말이고
{ extended: false }일 경우, 허용하지 않는다는 의미이다.
또한 true이면 따로 설치가 필요한 npm qs 라이브러리를 이용하고 false이면 Node.js에 기본으로 내장된 queryString을 사용한다.
728x90
반응형