2016-10-20 5 views
0

私は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:奇妙なことが...それはアドレス変数で作業を行いながら、それは、気象変数では動作しないということです: '(

+1

の3つ目のパラメータがないように見えます: 'weather(lat、long、yourCallbackFunction);' – mika

答えて

0
var weather = (lat, long, callback) => { 

は2と呼ばれる3つのパラメータ

weather(lat, long); 

と宣言しました。 callbackは、確かに、未定義であることを

var weather = (lat, long, callback) => { 
    console.log('callback = ', callback); 
あなたが問題を見ている可能性が

はあなたのようなデバッグ行を追加しました。

+0

Ehmmm ...申し訳ありませんが、私はそれを取得しません。あなたはどういう意味ですか?私は疲れているかもしれません...しかし、私はちょうど知らないです –

+0

私はそれをより良く説明することはできません。あなたの関数は3つのパラメータを求めており、あなたは2つしか与えていません。 –

関連する問題