사전 설치 요구사항


request 모듈 사용시, 추가적인 request 모듈 설치를 필요로 한다.


npm install request




폼 전송 방법


request.post('http://service.com/upload', {form:{key:'value'}})
// or
request.post('http://service.com/upload').form({key:'value'})
// or
request.post({url:'http://service.com/upload', form: {key:'value'}}, function(err,httpResponse,body){ /* ... */ })




쿠키 저장


로그인 등에서 서버로부터 전달받은 쿠키를 저장하고 이후에 요청에 계속 사용하고 싶을 경우, 아래 방법 중 한가지를 사용한다.


1) 매 요청마다 옵션에 jar: true를 설정


request({
  ...

  jar: true
},
...



2) 요청 전에 디폴트값으로 설정


var request = request.defaults({jar: true})




,


cheerio 모듈을 사용하면, jquery에서 selector를 사용하는 방식으로 HTML을 분석할 수 있다.



사전 설치 요구사항


cheerio 모듈 사용시, 추가적인 cheerio 모듈 설치를 필요로 한다.


npm install cheerio




HTML 파싱 예제


var http = require('http');
var cheerio = require('cheerio');
 
var options = {
    hostname: 'httpbin.org'
  };
 
function handleResponse(response) {
  var serverData = '';
  response.on('data', function (chunk) {
    serverData += chunk;
  });
  response.on('end', function () {
 
    var $ = cheerio.load(serverData);
 
    var result = $(".bash").text();            // 클래스가 bash인 요소를 선택
    var result2 = result.replace(/(^\s+|\s+$)/g, ""); // 앞뒤의 화이트 스페이스를 제거
    console.log("Find by class : bash -> " + result2);
 
    result = $("#AUTHOR").text();                     // id가 AUTHOR인 요소를 선택
    result2 = result.replace(/(^\s+|\s+$)/g, "");     // 앞뒤의 화이트 스페이스를 제거
    console.log("Find by id : AUTHOR -> " + result2);
  });
}
 
http.request(options, function(response){
  handleResponse(response);
}).end();




,


request 모듈 사용시, 추가적인 request 모듈 설치를 필요로 한다.


npm install request



HTTP 요청하기


var request = require('request');

request({
    url: 'http://httpbin.org/ip',
}, function(err, res, html) {
    if (err) {
        console.log(err);
        return;
    }

    console.log("received server data:");
    console.log(html);
});


참고 사항


 - https 접속을 위해서는 url 안에 직접 'https://~'와 같은 형식으로 입력하면 된다.


 - 헤더 정의가 필요할 경우, 아래와 같이 추가한다.


request({
  ...


  headers: {

    'Content-Type': 'text/html'
  }
},
...





,


기본 HTTP 요청하기


var http = require('http');
var options = {
    hostname: 'httpbin.org',
    path: '/ip'
  };

function handleResponse(response) {
  var serverData = '';
  response.on('data', function (chunk) {
    serverData += chunk;
  });
  response.on('end', function () {
    console.log("received server data:");
    console.log(serverData);
  });
}

http.request(options, function(response){
  handleResponse(response);
}).end();



참고 사항


 - 접속 옵션 지정시, URL 중 호스트명은 hostname에, 세부 하위 경로는 path에 들어간다.


 - https 접속을 하려면, http 모듈 대신에 https 모듈을 사용하면 된다.


var http = require("https");


 - 특정 포트 지정시는 아래와 같이 추가한다.


var options = {

  ...

  port: '4242'

  };




POST 요청하기


var http = require("http");
var options = {
  hostname: 'httpbin.org',
  path: '/post',
  method: 'POST',
  headers: {
    'Content-Type': 'text/html',
  }
};

var req = http.request(options, function(res) {
  console.log('Status: ' + res.statusCode);
  console.log('Headers: ' + JSON.stringify(res.headers));
  res.setEncoding('utf8');
  res.on('data', function (body) {
    console.log('Body: ' + body);
  });
});
req.on('error', function(e) {
  console.log('problem with request: ' + e.message);
});

req.write(
    '{"text": "test string"}'
);
req.end();




참고 사이트


 - http://httpbin.org : 각종 HTTP 요청들에 대한 응답을 테스트할 수 있는 사이트



,

Node.js는 일반적인 자바스크립트가 웹 브라우저에서 구동되는 것과는 달리, 인터프리터 언어와 같은 방식으로 데스크탑 혹은 서버에서 자바스크립트를 동작시킬 수 있는 자바스크립트 런타임이다. Chrome V8 자바스크립트 엔진을 기반으로 하고 있다.


설치


1. https://nodejs.org 에서 최신 버전을 다운받아 설치한다.



테스트


1. 다음의 내용을 hello.js 파일로 저장한다.


console.log('Hello Node.js!');


2. 위의 파일을 실행해본다.


node hello.js



참고 사이트


 - https://nodejs.org/ko/


 - http://www.tutorialspoint.com/nodejs/




<테스트 환경>

OS : Windows 7

Node.js 버전 : v4.5.0 LTS



,