2 Stimmen

Node.JS Funktion, die den HTTP-Antwortwert zurückgibt

Ich muss eine Funktion aufrufen, die eine HTTP-Anfrage macht und den Wert durch Rückruf an mich zurückgibt. Aber immer wenn ich es versuche, bekomme ich eine Null-Antwort. Kann mir jemand helfen?

Hier ist mein Code:

var url = 'www.someurl.com'
makeCall(url, function(results){return results})

makeCall = function (url, results) {
          https.get(url,function (res) {
           res.on('data', function (d) {
                    resObj = JSON.parse(d);
                    results(resObj.value)

                });
            }).on('error', function (e) {
                     console.error(e);
                });
        }

12voto

mr.freeze Punkte 13178

Sie müssen Ihren Code neu strukturieren, um einen Callback anstelle einer Rückgabe eines Werts zu verwenden. Hier ist ein modifiziertes Beispiel, das Ihre externe IP-Adresse abruft:

var http = require('http');

var url = 'http://ip-api.com/json';

function makeCall (url, callback) {
    http.get(url,function (res) {
        res.on('data', function (d) {
            callback(JSON.parse(d));
        });
        res.on('error', function (e) {
            console.error(e);
        });
    });
}

function handleResults(results){
    //etwas mit den Ergebnissen machen
}

makeCall(url, function(results){
    console.log('Ergebnisse:',results);
    handleResults(results);        
});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X