본문 바로가기

Javascript/nodejs

[Node.js: Express: POST 방식을 이용한 정보의 전달] form / POST / GET과 POST의 용도

form과 GET

views/form.jade

form 태그의 method를 생략하면 기본적으로 GET방식이다.

doctype html
html
  head
    meta(charset='utf-8')
  body
    form(action='/form_receiver' method='get')
        p
            input(type='text' name='title')
        p
            textarea(name='description')
        p
            input(type='submit')

app.js

GET 방식query string을 통해 데이터를 받을 수 있다.

app.get('/form', function(req, res){
    res.render('form');
});
app.get('/form_receiver', function(req, res){
    var title = req.query.title;
    var description = req.query.description;
    res.send(title+', '+description)
});

form과 POST

body-parser이라는 middleware가 필요하다. [참고]

> npm install body-parser

그리고 form.jade의 form의 method를 'post'로 바꿔보자

app.js

POST 방식body라는 객체를 통해 데이터를 가져온다

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }))

app.post('/form_receiver', function(req, res){
    var title = req.body.title;
    var description = req.body.description;
    res.send(title+', '+description)
});

GET과 POST의 용도

GET: url에 모든 정보가 표시되고, 이를 가져오려고 할 때

POST: url에 표시되지 않는 정보를 가져올 때

          ex) 아이디, 비밀번호, 데이터가 많을 때

 

그렇다고 POST가 더 보안상으로 안전한 것은 아니다. 그것은 다른 차원의 문제(HTTPS...)