Wenn ein Browser oder Curl-Client meine Node-Express-App aufruft, möchte ich JSON-Daten von einer externen Website abrufen und zurückgeben, obwohl die verschachtelten http-Aufruf gebe die JSON-Daten zurück an meinen Express-Server Ich kämpfe darum, dass der JSON zum rufenden Browser zurückkehrt - wie mache ich das?In einer Nodejs-App wie stelle ich eine HTTP-Client-Anfrage innerhalb einer Express-Methode ein
Dies ist der aktuelle Test app Code mit curl Reaktion:
var http = require('http');
var app = require('express')();
app.get('/', function (req, res) {
var str = '';
var options = {
host: 'jsonplaceholder.typicode.com',
path: '/posts/1'
};
callback = function(response) {
response.on('data', function (chunk) {
str += chunk;
});
response.on('end', function() {
console.log(str);
});
}
var req = http.request(options, callback);
res.send(str);
req.end();
});
app.listen(3000, function() {
console.log('Example app listening on port 3000!');
});
Hier ist das Ergebnis der Kräuselung localhost: 3000 (keine Körperdaten zurückgegeben):
Die Show des Konsolenprotokolls Server-Seite Die http-Anfrage Daten wurden empfangen:
Alle Vorschläge/Zeiger geschätzt!
Wenn Sie versuchen, einfach mit dem zurück zu antworten, was Sie erhalten haben, dann '' 'app.get ('/', Funktion (req, res)) { res.status (200) .send (req.body); }); '' 'sendet das komplette json, das Sie auf Ihrer Serverseite haben, zurück zum Client. –
Danke Vikram - Ich werde es versuchen. Was müsste ich tun, um die Antwort zu ändern, bevor Sie den Angerufenen zurückgeben? – Joelster
Hallo Vikram, tut mir leid, ich konnte das nicht funktionieren, ich vermute, es ist das Warten auf die Fertigstellung, aber zum Glück sind in der Zwischenzeit einige funktionierende Antworten eingegangen. Danke jedenfalls! – Joelster