私はNode JSの新機能ですから、簡単なことから始めました。天気アプリしかし、私はそれに問題がある、私は今数時間を探していて、私は解決策を見つけることができません。それで私がここでなぜ尋ねているのか。NodeJSコールバックは関数ではありません
私のコールバックでエラーが発生します。 これは私のコードです:
var weather = (lat, long, callback) => {
request({
url: `https://api.darksky.net/forecast/79edcc21428e0d3076f214db1935daeb/${lat},${long}`,
json: true
}, (error, response, body) => {
var fahrenheit = body.currently.temperature;
var celsius = Math.round(((fahrenheit-32)/1.8) * 10) /10;
console.log(fahrenheit);
console.log(celsius);
callback(celsius);
});
};
そして、私はここでコールバックを呼び出す:変数が間違っているかもしれないと
// stuff to get latitude and longtitude
weather(lat, long);
var test = celsius;
が、私はそれなしでもエラーが発生します。
私はちょうどそれ:(完全なコードを見たい人のために
を解決する方法がわからないので、誰かが私を助けることを願って: (私はオランダ人だそうメッセージがでていますあまりにもオランダ語、それは特別な何もない)
const request = require('request');
var weather = (lat, long, callback) => {
request({
url: `https://api.darksky.net/forecast/79edcc21428e0d3076f214db1935daeb/${lat},${long}`,
json: true
}, (error, response, body) => {
var fahrenheit = body.currently.temperature;
var celsius = Math.round(((fahrenheit-32)/1.8) * 10) /10;
console.log(fahrenheit);
console.log(celsius);
callback(celsius);
});
};
var address = (address, callback1, celsius) => {
var address = encodeURIComponent(address);
request({
url: `https://maps.googleapis.com/maps/api/geocode/json?address=${address}`,
json: true
}, (error, response, body) => {
if (error) {
callback1('Niet mogelijk om de Google servers te contacteren.');
} else if(body.status === 'ZERO_RESULTS') {
callback1('Niet mogelijk om dat address te vinden.');
} else if(body.status === 'OK') {
var lat = body.results[0].geometry.viewport.northeast.lat;
var long = body.results[0].geometry.viewport.northeast.lng;
weather(lat, long);
var test2 = celsius;
callback1(undefined, {
Test: `test: ${test2}`,
Address: body.results[0].formatted_address,
// Lat: body.results[0].geometry.viewport.northeast.lat,
// Long: body.results[0].geometry.viewport.northeast.lng
});
} else {
callback1('Er is iets mis gegaan.');
}
});
};
module.exports.address = address;
EDIT:奇妙なことが...それはアドレス変数で作業を行いながら、それは、気象変数では動作しないということです: '(
の3つ目のパラメータがないように見えます: 'weather(lat、long、yourCallbackFunction);' – mika