프로그래밍/Node.js

Node.js - POST 요청 Node.js에서 처리 방법

가카리 2015. 1. 2. 17:33
반응형

 

POST request에서 데이터를 읽는 것은 Node.js에서 약간 복잡합니다.

첫 번째 단계로 들어오는 datalisten을 합니다.

여기서 한가지 트릭은 data가 끝날 때까지 기다려야 하는 것입니다. 그래야 데이터를 잃지 않고 처리할 수 있기 때문입니다.

 

다음은 예제 샘플입니다.

 

예제 소스.

var http = require('http');

var postHTML =

  '<html><head><title>Post Example</title></head>' +

  '<body>' +

  '<form method="post">' +

  'Input 1: <input name="input1"><br>' +

  'Input 2: <input name="input2"><br>' +

  '<input type="submit">' +

  '</form>' +

  '</body></html>';

 

http.createServer(function (req, res) {

  var body = "";

  req.on('data', function (chunk) {

    body += chunk;

  });

  req.on('end', function () {

    console.log('POSTed: ' + body);

    res.writeHead(200);

    res.end(postHTML);

  });

}).listen(8080);

 

postHTML 변수는 2개의 입력 상자와 submit 상자를 포함하고 있는 static string 입니다.

그다음 서버를 만들구요 request listen하게됩니다. 여기서 req.on('data') 메소드를 사용하여 POST 데이터가 들어오면 chunk를 사용하여 데이터를 body 변수에 저장해둡니다.

더이상 데이터가 들어오지 않는다면 end 이벤트가 실행될 것이고 그래서 req.on('end' 가 실행됩니다.

그 후 데이터를 console에 뿌려주고, response에 보내게 됩니다. response에 보낸다는 것은 HTML화면을 보여준다는 의미구요.

 

출처 : https://docs.nodejitsu.com/articles/HTTP/servers/how-to-read-POST-data

 

반응형