好的,所以我正在玩meteorJS,我正在使用雅虎财务服务,使用jquery以json格式获取一些数据。收到数据后,我想将其存储到我的mongo DB中。我为此目的编写的代码如下:
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,这是我所拥有但不确定这是否正确。 非常感谢任何帮助。
答案 0 :(得分:9)
你几乎就在那里,只是向后走了一点。您应该首先检查它是否是服务器,然后获取数据。你也应该使用Meteor内置的http方法。
首先,您需要添加http包。在你的meteor项目的根目录中,从终端运行它:
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)
});
}
});
}
Meteor for Meteor的http方法:
http://docs.meteor.com/#meteor_http