ich habe ein eigenständiges Beispiel geschrieben, basierend auf Ihren Code:
var http = require('http'),
https = require('https');
http.createServer(function(req, res) {
// You can largely ignore the code above this line, it's
// effectively the same as yours but changed to a standalone
// example. The important thing is we're in a function with
// arguments called req and res.
var url = 'https://api.coindesk.com/v1/bpi/currentprice.json';
var request = https.get(url, function(response) {
var body = '';
response.on('data', function(chunk) {
body += chunk;
});
response.on('end', function() {
// TODO: handle JSON parsing errors
var btcValue = JSON.parse(body);
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify({
btcValue: btcValue
}));
});
});
request.on('error', function(e) {
console.error(e);
});
// Runs this example on port 8000
}).listen(8000);
die wichtigste Änderung unserer Antwort den Code bewegt für den Umgang mit (res
) in die 'end'
Zuhörer der Coindesk-Antwort. Dieser Aufruf an coindesk ist asynchron, daher müssen wir auf das Ereignis 'end'
warten, bevor wir versuchen, darauf zu reagieren.
Sie verweisen beim Erstellen Ihres JSON zweimal auf eine Variable mit dem Namen response
. Ihr Code hat response
nicht definiert, aber ich habe angenommen, dass es mit dem btcValue
verbunden sein soll, der von dem Anruf zu coindesk zurückkommt. Ich war mir nicht sicher, was genau Sie dort wollten, also habe ich btcValue
in ein anderes Objekt zu Demonstrationszwecken gewickelt.
In Ihrem ursprünglichen Code hatte Sie diese Zeile:
require('https').get(url, function(res, btcValue){
Das zweite Argument, das Sie btcValue
genannt haben, nicht so werden existiert es nur auf undefined
eingestellt werden.
Ich habe send
zu end
geändert, aber das ist keine signifikante Änderung. Ich nehme an, Sie verwenden Express (die eine send
-Methode bietet), während mein Beispiel nicht ist.
Wo ist "Rückruf" hier ?? du hast gerade callback callback aber wo ist es ?? Der obige Code sollte den Fehler "Callback ist nicht definiert" enthalten – Subburaj