Node.js http-data außerhalb der Request?
Hallo,
ich habe folgendes Problem:
Ich hab eine HTTP-GET-Request abgeschickt und möchte nun die zurückgelieferte Data außerhalb dieses Aufrufs nutzen können. Ich kriegs aber irgendwie nicht hin. Ich hätt gern außerhalb des http.get eine Variable, in die die Data dann gespeichert wird.
So sieht mein Source-Code aus:
http_get = http.get('exampleapi.com/api', (res) => {
//console.log('statusCode: ', res.statusCode);
//console.log('headers:', res.headers);
let response = '';
res.on('data', (d) => {
response += d;
})
res.on('end', () => {
console.log(response);
})
});
Die Anfrage geht an ne Steam-API, welche mir ein JSON-Objekt zurückliefert, falls das hilft :)
1 Antwort
Es handelt sich hierbei um einen asynchronen Vorgang. Das heißt, dein Skript müsste explizit darauf warten, bis der Response erhalten wurde.
Die einfachste Lösung wäre es, im Callback (für das end-Ereignis) weiterzuarbeiten.
Die Zuweisung an eine Variable http_get würde ich im Übrigen weglassen. Es sei denn, du möchtest den Block wiederverwendbar gestalten.
doGetRequest = (url, callback) => {
http.get(url, response => {
let data = "";
response.on("data", d => data += d);
response.on("end", () => callback(data));
});
}
// usage:
doGetRequest("/some/api/method", data => {
/* do something ... */
});
Alternativ gibt es noch den Weg über async/await.
Das Ergebnis (gelesene Daten aus dem Response) stehen in der Variable data.
Hmm verstehe. Ich würd die deshalb gern in ner Variable haben, um halbwegs unkompliziert mit der resultierenden JSON arbeiten zu können