2014-10-01 10 views
0

이미 요청 객체가 있습니다. 이제 내가해야 할 일은 호스트를 변경하고 http 요청을 다시하는 것뿐입니다.
// URL 종류 : www.something.com/a/b?w=2 & 전자 = 지금은 쿼리 문자열을 보내 어떻게 2
nodejs의 http.request에서 쿼리 문자열 객체를 전달하는 방법

fun(req,res){ 

options = { 
    host : <newhost> 
    method : req.method 
    path : req.path 
    headers : req.headers 
    } 
    http.request(options,...) 
} 

이 (2 & E = 2 = w) 선택권.
요청 모듈 (nodejs)을 사용하여 수행 할 수 있지만 리디렉션 (HTTP 302)을 따라야합니다.

감사합니다,

+1

동일한 경로를 설정합니다. 'followRedirect : false' – josh3736

+0

그게 .. 많이 .. 감사합니다. 대답으로 게시 할 수 있습니다. – shantanu

답변

2

http는 더 좋은 방법은 노드의 쿼리 문자열 모듈과 객체를 캐릭터 라인 화하는 것입니다뿐만 아니라

var queryString = 'w=2&e=2'; 
options = { 
    host : <newhost> 
    method : req.method 
    path : req.path + '?' + queryString // say, var queryString = 'w=2&e=2' 
    headers : req.headers 
    } 
    http.request(options,...) 
1

이 작업을 수행 할 수 있습니다. 이 방법을 사용하면 옵션 객체를 사용자 정의 queryBuilder 함수에 전달하고 다양한 값의 여러 요청에 대해 다시 사용할 수 있습니다. 다음은 기본적인 예입니다.

var querystring = require('querystring'); 
    var http = require('http'); 

    var options = { 
     host : 'www.host.com', 
     path : '' 
    } 

    var queryBuilder = function (object, callback) { 
     callback(querysring.stringify(object)); 
    }; 

    queryBuilder({ w: '2', e: '2' }, callback(data){ 
     options.path = data; 
     http.request(options, function (req, res) { 
      //do something with the response 
     }).end(); 
    }); 

당신은 리디렉션을 따르지하는 요청을 알 수 있습니다 w=2&e=2

관련 문제