2012-04-25 100 views
4

好吧,我正在玩meteorJS,我正在使用雅虎财务服务以jQuery格式使用jquery获取一些数据。一旦我收到数据,我想将它存储到我的mongo数据库中。我有目的的代码如下

用蒙太奇服务中的数据填充mongodb

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); 
      } 
      }); 
     } 
    } 
}); 

现在你可以看到我不知道如果我在做什么是正确与否。我知道你可以插入到具有json结构的mongo db中,这是我拥有的,但不知道这是否正确。 任何帮助,非常感谢。

回答

9

你几乎在那里,只是稍微向后一点。你应该先检查它是否是服务器,然后获取数据。你也应该使用Meteor的内置http方法。

首先你需要添加http包。在您的流星项目的根目录从终端运行此:

meteor add 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方法


文档: http://docs.meteor.com/#meteor_http

+0

谢谢你非常格格!这现在完美 – climboid 2012-04-26 14:55:41