카테고리 없음
NodeJS part 6
taeskim
2018. 2. 25. 15:19
1. Express, POST 방식을 이용한 정보의 전달
1. GET 방식을 이용한 정보의 전달1
- GET방식은 서버에 있는 정보를 가져오는 것을 말합니다.
- POST방식은 서버에 정보를 올리는 방식입니다.
2. Express, GET 방식을 이용한 정보의 전달 2:form
- 먼저 Get 방식을 이용한 데이터 전송을 해보겠습니다
- 기본적인 form을 하나 만들어 보도록 하겠습니다. 사용자의 input 정보를 두개 받는 형태를 하나 만들어 보도록 하겠습니다.
- input 타입으로 text를 정보로 받는 형태 중에서 공간이 제한 된 것과 여러줄의 텍스트를 입력할 수 있는 textarea 타입의 input을 받아 보도록 하겠습니다.
- 우리가 선택한 템플릿 방식은 pug였고, views라는 폴더에 pug를 형태로 html 문서를 작성한 뒤 JS에서 실행하면 됩니다.
- views라는 폴더에 'form.pug'라는 파일을 하나 만듭니다.
- JS에서 해당 파일을 render하는 코드를 작성합니다.
사용자의 입력에 대해 응답하는 것이므로 res를 사용합니다.
app.get('/form', function(req, res) { res.render('form'); })
지금부터는 pug에 우리가 원하는 형태의 html 템플릿을 작성합니다.
html head meta(charset='utf-8') body form(action='/form_receiver') p input(type='text' name='title') p textarea(name='description') p input(type='submit')
submit이라는 input에 event가 발생하게 되면 form이라는 tag로 묶여 있는 테그들은 '/form_receiver'라우터로 이동하게 됩니다.
action='/form_receiver' 다음에 method='get'이라는 method를 명시적으로 적어져도 되고 적지 않으면 default값이 get으로 설정됩니다.
이와 같은 상태에서 form_receiver에서 우리가 입력한 input값들을 뿌리는 JS코드를 완성해 봅시다.
app.get('/form_receiver', function(req, res) { var title = req.query.title; var description = req.query.description; res.send(title + ' ' + description); })
3. POST 방식으로 전송해 보기
- POST 방식을 사용하기 위해서는 필요한 모듈이 있습니다. 그것은 바로 'body-parser'입니다. npm 공식 사이트에 들어가서 'body-parser'를 설치하고 http 모듈을 추가해서 사용하면 됩니다.
- 개념적인 인해를 돕기 위해 우리는 미들 웨어라는 개념을 이해야 합니다.
- 미들웨어는 서버와 클리언트 사이에 있는 하나의 문지기라고 생각하면 될듯합니다.
JS 코드가 만일 body객체를 사용하기를 원한다면 이에 맞는 파싱과정이 필요하게 되고 body-parser는 이런 역할을 적극적으로 수행하게 되는 것이죠.
npm install body-parser --save
위와 같은 명령어를 여러분이 작업중인 폴더에 설치하여 줍니다. 앞선 설명들로 명령어 각각의 설명은 생략합니다.
- 모듈을 추가해 주면 이 모듈을 우리가 개발하고 있는 app에 붙여주는 작업을 해야 합니다.
인간은 직관적으로 각각의 변수들이 어떻게 연결될 것인지 알 수 있지만, 컴퓨터는 연결 하나하나를 manually 해줘야 합니다.
var bodyPoarser = 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); })
지금까지만 살펴보면 뭔가 POST 방식이 GET 방식에 비해 굉장히 번거로운 것처럼 보입니다. 다음 장에서는 어떠한 차이점을 가지고 있고 이에 맞춰 적절히 사용해야 하는지를 살펴 보겠습니다.
4. POST VS GET
- 먼저, POST 방식의 장점을 살펴 보겠습니다.
- GET을 이용해 사용자의 로그인 정보를 url을 통해 전달하게 되면, 우리는 보안상의 문제를 가질수가 있습니다. 즉, 사용자의 ID와 비밀번호 값이 노출되게 되는 것이죠.
- GET을 이용해 사용자에게 대량의정보를 제공해 준다고 생각하면, url에 담을 수 있는 정보의 량은 한정적이므로, 일정 길이를 넘어서게 되면 정보가 누락되어 전송되게 됩니다.
- 이와 같은 문제를 해결하기 위해서 우리는 POST 방식을 이용해서 정보를 전달하게 됩니다.
- 하지만 GET 방식을 이용하면 특정 위치의 정보에 대한 정확한 url 주소를 가질 수 있다는 장점이 있습니다.