2017-03-01 8 views
-2

expressでnode.jsを使用してサーバー側のアプリケーションを作成したいとします。現時点では、場所と温度のjsonドキュメントを取得することができますが、私がpykiteを使ってオンラインにすると、アプリケーションはアクセスしているサーバーの場所にサーバーの場所を取得します。現在の形式のコードは次のとおりです。アクセスする必要がありますクライアントIPは天気APIのサーバーIPではありません

var express = require('express'); 
var app = express(); 
var request = require('request'); 



    app.get('/api/weather/current_temperature', function (req, res) { 
     request('http://api.wunderground.com/api/ebb3e0cf5059cce8/conditions/q/autoip.json', function(error, response, body){ 
      if (!error && response.statusCode==200){ 
       res.setHeader('Content-Type', 'aplication/json');  
       var result = JSON.parse(body); 
       res.json({ "location": result.current_observation.observation_location.city,"temperature": result.current_observation.temp_c }); 
      }else{ 
       console.log(error, response.statusCode, body); 
      } 
      res.end("") 
     }); 
    }); 

    var server = app.listen(3000, function() { 
    var host = server.address().address; 
    var port = server.address().port; 
     console.log('The app is up.'); 
    }); 

私はこれに新しいですが、私は学びたいと思います。可能であれば、このコードで実装することを助けて、ユーザーの場所にアクセスし、自分の場所で天気を判断する方法をお伝えしたいと思います。 ありがとうございます。

P .:私はいくつかのドキュメントへのリンクもありますが、何もスキップしたくありません。

+0

Google検索で簡単に検索できます。 http://stackoverflow.com/questions/27234861/correct-way-of-getting-clients-ip-addresses-from-http-request-golang –

答えて

0

http://api.wunderground.com/api/YOUR_KEY/conditions/q/autoip.jsonにリンクしているURL(キーを入力しなかったために機能しません)はautoipです。

これは、どのようなIPアドレスからでも結果がから返されることを意味します。

だから、あなたは2つのオプションがあります。

  • をNodeJSからの要求をしないでください。ブラウザからリクエストを行います。 (これはおそらくAPIキーの使用を前提にしてお勧めできませんし、同じ原点ポリシーの問題になるかもしれません)。
  • 使用するIPアドレスまたは場所を指定できる別のAPI(おそらく同じサイトからのAPI)を探します。
+0

私のコードでは、コード例でキーを提供しませんでした私はそれを持っている。 – Mercurius

+0

@MercuriusAltar - コードをテストするのが難しくなります。 – Quentin

関連する問題