Wie leiten Sie eingehende URL-Anforderungen durch das hinzufügen weiterer Parameter

Problem: ich bekomme eine eingehende HTTP-Anfrage an meinen server-Anwendung. Die Anfrage ist so etwas wie dieses : http://example.com?id=abc. Ich muss analysieren diese Anforderung, patch zusätzliche URL-Parameter, und rufen Sie eine gehostete html-Datei. Also:

http://example.com?id=abc => http://example.com:8080/temp.html?id=abc&name=cdf.

Also der client sollte sehen temp.html

Hier der code:

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;
}

Obwohl dies eine wirklich dumme Art und Weise des Gehens über dieses Problem, ich sehe die Antwort in der res.Ende() callback. Wie verbreiten Sie diese auf der übergeordneten aufrufenden Funktion onRequest ?

Gibt es eine einfachere Möglichkeit, dies zu tun, nur mit Knoten ? Ich weiß, dass es Wege gibt, um zu dienen statische html-Dateien. Allerdings brauche ich, um URL-Parameter übergeben temp.html - also ich bin mir nicht sicher, wie dies zu tun.

InformationsquelleAutor Pradeep Banavara | 2012-05-24

Schreibe einen Kommentar