私はAPIからの応答を取得し、それをNode.jsでさらに使用するために変数に保存するのには苦労しています。たぶん私は言語の仕組みがわからないかもしれません。ここでの問題は、次のとおりです。JSONレスポンスをNode.jsに変数として保存する方法は?
// Objective, get current temperature of New Delhi in celcius
var request = require('request');
var url = "http://api.openweathermap.org/data/2.5/weather?id=1261481&appid=#####&units=metric";
request(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
curTemp = JSON.parse(body).main.temp; // curTemp holds the value we want
}
})
// but I want to use it here
console.log(curTemp);
私は変数にopenweathermap(すなわちbody.main.temp
)からのJSONレスポンスを保存したいです。それから私は現在の気温からつぶやきを作っていきます。
にコーディングするための良い方法ではありません考えてみましょうか? –
よくある非同期の問題です。あなたが 'curTemp'を印刷しようとすると、その変数はHTTPリクエストがまだ終了していないので、おそらく未定義です。したがって、コールバックや約束を使用するか、 'curtemp'に依存するコードを同じスコープにラップします。 –