[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

🛠 기타/WEB

Node.js - express form (body-parser)

inu 2020. 12. 15. 18:47
반응형

form

{% extends "layout/base.html" %}

{% block content -%}
    <form action="" method="post">
        <table class="table table-bordered">
            <tr>
                <th>제품명</th>
                <td><input type="text" name="name" class="form-control"/></td>
            </tr>
            <tr>
                <th>가격</th>
                <td><input type="text" name="price" class="form-control"/></td>
            </tr>
            <tr>
                <th>설명</th>
                <td><input type="text" name="description" class="form-control"/></td>
            </tr>
        </table>
        <button class="btn btn-primary">작성하기</button>
    </form>

{% endblock %}
  • 위와 같은 html 코드가 있다고 하자. 이 때 form 태그는 버튼을 눌렀을 때 특정 요청을 보낼 수 있도록 해준다.
  • 위 코드에서는 form의 method를 'post'로 설정했으므로, POST 요청이 수행된다.
  • action은 해당 요청의 대상을 결정하는데, 해당 부분이 비어있을 경우 현재 주소를 대상으로 한다.
  • 물론 해당 주소의 POST 요청에 대한 설정이 코드 상에 존재해야 정상적으로 작업이 수행된다.
  • cf. base.html에는 코드의 기반으로 부트스크랩이 적용되어 있다.


body-parser

const bodyParser = require('body-parser');
app.use( bodyParser.json() );
app.use( bodyParser.urlencoded({ extended : false });
  • 미들웨어로서 body-parser를 불러와 사용한다.
  • node.js 내장모듈이기 때문에 따로 설치할 필요는 없다.
  • 해당 모듈을 활용하면 POST 요청에서 받아온 값들을 사용할 수 있게 된다.
  • 이를 활용해 POST 요청을 작성해보겠다.
router.post('/products/write', ( req , res ) => {
    res.send(req.body);
});
  • POST 요청이 들어왔을 때 다음 콜백을 수행한다.
  • 여기서 req.body 안에 POST 요청에 담긴 정보들이 들어있다. (위 코드대로라면 name, price, description에 대한 정보 소유)

  • 따라서 위와 같이 작성 후 버튼을 클릭해 POST 요청을 보내면

  • 위와 같은 결과가 화면에 띄워진다.
  • cf. name, price, description 각각도 req.body.name과 같은 방식으로 접근하여 출력할 수 있다.
반응형

'🛠 기타 > WEB' 카테고리의 다른 글

React 기초 - Component 생성하기  (0) 2020.12.28
React 기초 - App 생성 및 시작하기  (0) 2020.12.28
Node.js - http 모듈  (0) 2020.12.14
Node.js - Event Emitter  (0) 2020.12.10
Node.js - express 미들웨어  (0) 2020.10.14