Post 데이터 받기
웹브라우저에서는 form태그를 사용하여 서버 측으로 데이터를 전송하는 방법을 소개했다. Node.js에서 POST방식으로 전송된 데이터를 받는 방법은 아래와 같다.
www.js
var http = require('http');
var qs = require('querystring');
var app = http.createServer(function(request, response){
// createServer는 nodejs로 웹브라우저가 접속이 들어올 때마다 callback함수를 호출
// callback함수의 인자 request와 response
// request는 요청할 때 웹브라우저가 보낸 정보
// response는 응답할 때 웹브라우저한테 보낼 정보
if(pathname === '/create_process'){
var body = '';
request.on('data', function(data){
//request가 들어오면 브라우저에서 POST방식으로 데이터를 전송할 때
// 전송할 데이터를 조각내 'data'에 담아 callback함수의 인자 값으로 전달
body += data; // 조각된 정보를 body에 저장
if (body.length > 1e6)
request.connection.destroy();
//POST방식은 대용량 전송이 가능하므로 데이터 크기의 제한을 두어야함
});
request.on('end', function(){
// 더이상 들어올 정보가 없으면 end 다음의 callback함수를 실행
var post = qs.parse(body);
// querystring모듈의 parse함수 인자로 데이터(body)를 넣어 post로 저장
console.log('제목 : ' + post.title);
console.log('내용 : ' + post.description);
});
}
});
사실 Express 프레임워크를 사용하면 더 간편하게 받을 수 있다.