2012-04-25 19 views
4

私はmeteorJSで遊んでいますが、jqueryを使用してjson形式でデータを取得するためにyahoo financeサービスを使用しています。私がデータを受け取ったら、それを私のmongo DBに保存します。

mongodbにmeteorJSサービスのデータを入力してください

Stocks = new Meteor.Collection("stocks"); 
$.ajax({ 
    type:'GET', 
    url:'http://query.yahooapis.com/v1/public/yql?q=select*from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22GOOG%22)&env=store://datatables.org/alltableswithkeys&format=json', 
    success:function(data){ 
    if (Meteor.is_server) { 
      Meteor.startup(function() { 
      if (Stocks.find().count() === 0) { 
       Stocks.insert(data); 
      } 
      }); 
     } 
    } 
}); 

は今、あなたは私がやっていることは正しいかではない場合、私は見当もつかない見ることができるように、以下のような目的のために、私が持っているコードです。私はあなたがmongo dbにjson構造で挿入できることを知っていますが、これは正しい方法であるかどうかわかりません。 何か助けていただければ幸いです。

答えて

9

あなたはほとんどそこにいるのですが、ちょっと後ろ向きです。最初にサーバであるかどうかを確認してから、データを取得してください。また、Meteorの組み込みhttpメソッドを使用する必要があります。

まず、httpパッケージを追加する必要があります。あなたの流星プロジェクトのルートディレクトリでは、端末からこれを実行します。

meteor add http

その後、関連するコードは次のとおりです。流星のHTTPメソッドの

if(Meteor.is_server){ 
    Meteor.startup(function() { 
    if(Stocks.find().count() === 0){ 
     var url = "http://query.yahooapis.com/v1/public/yql" + 
       "?q=select*from%20yahoo.finance.quotes%20where" + 
       "%20symbol%20in%20%28%22GOOG%22%29&env=" + 
       "store://datatables.org/alltableswithkeys&format=json" 
     Meteor.http.get(url, function(error,results){ 
     var stock_data = JSON.parse(results.content).query.results.quote 
     Stocks.insert(stock_data) 
     }); 
    } 
    }); 
} 


ドキュメント: http://docs.meteor.com/#meteor_http

+0

感謝あなたは非常にgreg!これは今完璧に動作します – climboid

関連する問題