使用meteor将Json对象输入mongodb

时间:2015-04-09 21:19:24

标签: json mongodb meteor

我正在尝试将API响应插入到我的mongo db中,但它不会保存单个字段。

在这里输入

PlayersList.insert(Meteor.http.get("API CALL HERE"));

以下是来电的回复:

{"hnub": {
   "id": 21098134,
   "name": "Hnub",
   "profileIconId": 20,
   "revisionDate": 1428613578000,
   "summonerLevel": 30
}}

有一种简单的方法可以干净地保存所有字段吗?

2 个答案:

答案 0 :(得分:1)

你应该在回调中插入不那样的内容。

检查语法HTTP.get(url, [callOptions], [asyncCallback])

  

请求完成时调用的回调。需要的   客户端。

来自docs

所以试试。

Meteor.http.get(url,function(err,result){
 if(!err){
  PlayersList.insert({result})
  }
})

请确保您拥有$ meteor add http,如果这不适用于某些Access-Control-Allow-Origin政策使用Meteor.method / Meteor.call

答案 1 :(得分:0)

HTTP调用的响应是具有内容(String),数据(如果可以将其解析为JSON的JavaScript Object),标头和statusCode的对象。我建议您运行这样的代码以查看实际响应:

console.log(Meteor.HTTP.get("API CALL HERE"));

如果事实证明响应包含数据字段下的已解析JSON,那么您可以完成所需的操作:

PlayersList.insert(Meteor.HTTP.get("API CALL HERE").data);

请注意,这种进行API调用的同步方式只能在服务器上运行。正如@Ethaan指出的那样,您需要使用回调来从客户端执行此操作,并且您必须克服跨域限制。