2017-03-01 1 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.S. : 일부 문서로 연결되는 링크를 원합니다. 아무 것도 건너 뛰고 싶지는 않습니다.

+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 주소 이든에서 온 결과를 반환한다는 것을 의미합니다.

  • 는 NodeJS에서 요청을하지 마십시오

    그래서 두 가지 옵션이 있습니다. 브라우저에서 요청하십시오. API 키를 사용하면이 방법이 적합하지 않을 수 있으며 동일한 원본 정책 문제가 발생할 수 있습니다.

  • 사용할 IP 주소 또는 위치를 지정할 수있는 다른 API를 찾으십시오 (동일한 사이트에서 하나 인 경우도 있음).
+0

예제 코드에서 코드에 제공된 코드를 제공하지 않았습니다. 나는 가지고있다. – Mercurius

+0

@MercuriusAltar - 코드를 테스트하기가 어렵습니다. – Quentin

관련 문제