2014-12-25 2 views
0

마지막으로 유성으로 다이빙합니다. 나는 HTTP get 요청에 관한 작은 문제가있다.Meteor : 콘솔 (서버)에 표시되고 클라이언트에 정의되지 않음을 보냅니다.

클라이언트에서는 서버에서 데이터를 가져 오기 위해 간단한 호출이 실행됩니다.

if (Meteor.isClient) { 
Template.liveprice.helpers({ 
    price: function() { 
     Meteor.call('getPrice', function(error, response) { 
      if (error) { 
       return error; 
      } else { 
       return response; 
      } 
     }) 
    } 
}) 
} 

서버 데이터는 실제 및 공개 API에서 검색됩니다. 서버에서 제대로 작동하지만 정의되지 않은 결과는 클라이언트로 다시 전송됩니다. 내가 여기서 무엇을 놓치고 있니?

if (Meteor.isServer) { 
Meteor.methods({ 
    getPrice: function() { 
     var url = 'https://www.bitstamp.net/api/ticker/'; 
     var req = HTTP.call('GET',url,function(error, result) { 
      //console.log(result); 
      if (result.statusCode == 200) { 
       var last = result.data.last; 
       console.log(last);//this shows the desired result in the server's console 
       return last;//sends back undefined to the client 
      } else { 
       return error; 
      } 
     }); 
    } 
}) 
} 
+0

유성은 모르지만 비동기 호출처럼 보이며 비동기 호출에서 복귀 할 수 없습니다. – epascarello

+0

나는 내 대답을 받아 들였지만 몇 가지 변화를 보았다. 특히, 오류 객체를 반환하기보다는 "Meteor.Error"를 던져야합니다. 가장 중요한 것은 원격 서버에서받은 데이터의 유효성을 검사해야한다는 것입니다. – sbking

+0

@sbking, thx. http 요청을 실시간으로 만들 수있는 기회는 무엇입니까? Atm 업데이트가 표시되지 않습니다. – user3586358

답변

0

@epascarello가 맞습니다. 운 좋게도 Meteor의 HTTP는 섬유 덕분에 동 기적으로 작동합니다. 이것을 시도하십시오 :

관련 문제