2017-06-22 3 views
0

J'essaie d'appeler un point de terminaison Web (clk.example- api.com/berlin/clk/bikes/eBike20131127000a). Cette réponse de WebPoint avec un JSON:Récupère un élément d'une réponse API?

{ 
"geo": { 

    "latitude": 52.520278, 
    "longitude": 13.415712 
}, 
"connection": { 
    "connected": false, 
    "since": "2017-06-20T14:55:15.280Z" 
}, 
"mileage": 29382, 
"vin": "eBike20131127000a", 
"fuelLevel": 46, 
"batteryLevel": 5.424346, 
"light": false, 
"charging": false, 
"pedalForce": 0, 
"speed": 0, 
"batteryVoltageBike": 48742 
} 

Mon code Je writed pour cela est:

function httpGet(myData, callback) { 
    console.log("got to the http function"); 

// Update these options with the details of the web service you would like 
to call 
var options = { 
//the endpoint i call for example: 
//clk.example-api.com/berlin/clk/bikes/eBike20131127000a 

    host: 'clk.example-api.com', 
    path: '/berlin/clk/bikes/' + encodeURIComponent(myData), 
    method: 'GET' 
}; 


var req = http.request(options, res => { 
    res.setEncoding('utf8'); 
    var returnData = ""; 


    res.on('data', chunk => { 
     returnData = returnData + chunk; 
    }); 


    res.on('end',() => { 
     // we have now received the raw return data in the returnData 
variable. 
     // We can see it in the log output via: 
     // console.log(JSON.stringify(returnData)) 
     // we may need to parse through it to extract the needed data 
     console.log(returnData); 
     callback(returnData); // this will execute whatever function the 
caller defined, with one argument 
    }); 


}); 
req.end(); 
} 

Je veux en fait le fuelLevel d'objet dans le stockage returnData. Peut-être qu'il y en a un qui peut m'aider à sortir de cette situation. Je n'ai pas de colle comment faire. Merci.

Répondre

0

L'exemple suivant utilise le module request, un module très courant (25 millions de téléchargements le mois dernier) utilisé pour les appels API dans le nœud.

Vous devrez installer demande npm install request

https://www.npmjs.com/package/request

var request = require('request'); 

function httpGet(myData, callback) { 

    request('http://www.mocky.io/v2/' + encodeURIComponent(myData), function (error, response, body) { 

     if (error) { 
      return callback(error); 
     } 

     var info = JSON.parse(body); 

     const fuelLevel = info.fuelLevel; 

     callback(null, fuelLevel); 

    }); 

} 

function completed(err, data){ 
    if (err){ 
     console.log(err) 
    } 
    console.log(data); 
} 

httpGet('594bbf6e1200004111424b7d', completed) 
+0

si j'utilise https au lieu de http j'installer https ... non ?! et si j'essaye cette solution ... je reçois null :( –

+0

pas l'url peut être https ou http, son utilisation du module de demande, il s'en fout, tweaked les réponses à https – roughcoder

+0

ok donc je n'ai pas à installer node_modules pour http et ou https ?! ... et pouvez-vous même deviner pourquoi je reçois null :( –