這更多的是一個概念性問題 - 請隨身攜帶。node.js - 如何通過添加附加參數來重定向傳入的URL請求
問題:我收到一個傳入的HTTP請求到我的服務器應用程序。請求是這樣的:http://xyz.com?id=abc。我需要解析此請求,修補其他URL參數並調用託管的html文件。所以:
http://xyz.com?id=abc =>http://xyz.com:8080/temp.html?id=abc&name=cdf。
所以客戶應該看到temp.html
下面的代碼:
function onRequest(request,response) {
if(request.method =='GET') {
sys.debug("in get");
var pathName = url.parse(request.url).pathname;
sys.debug("Get PathName" + pathName + ":" + request.url);
var myidArr = request.url.split("=");
var myid = myidArr[1];
//Call the redirect function
redirectUrl(myid);
}
http.createServer(onRequest).listen(8888);
function redirectUrl(myid) {
var temp='';
var options = {
host: 'localhost',
port: 8080,
path: '/temp.html?id=' + myid + '&name=cdf',
method: 'GET'
};
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 (chunk) {
temp = temp.concat(chunk);
});
res.on('end', function(){
return temp;
});
});
req.end();
return temp;
}
即使這是要對這個問題的一個非常愚蠢的辦法,我也看到了資源的響應。 end()回調。如何將其傳播到父調用函數onRequest?
有沒有更簡單的方法來做到這一點,只是使用節點?我知道有辦法提供靜態html文件。但是,我需要將URL參數傳遞給temp.html - 所以我不知道如何執行此操作。
任何幫助將不勝感激。
謝謝 - 簡單的重定向工作。 –
不客氣。請你接受答案。 – almypal