Meteor 访问HTTP GET JSON对象

Meteor 访问HTTP GET JSON对象,meteor,Meteor,我的脚被Meteor的HTTP方法弄湿了 作为测试,我在服务器上使用一个方法访问Twitter的api,如下所示: "twitter_user": () -> Meteor.http.get("https://api.twitter.com/1/users/show.json", {screen_name:"ppedrazzi"}) twitterUser = Meteor.call("twitter_user") 在客户端上,我按如下方式调用该方法: "twitter_us

我的脚被Meteor的HTTP方法弄湿了

作为测试,我在服务器上使用一个方法访问Twitter的api,如下所示:

"twitter_user": () ->
   Meteor.http.get("https://api.twitter.com/1/users/show.json", {screen_name:"ppedrazzi"})
  twitterUser = Meteor.call("twitter_user")
在客户端上,我按如下方式调用该方法:

"twitter_user": () ->
   Meteor.http.get("https://api.twitter.com/1/users/show.json", {screen_name:"ppedrazzi"})
  twitterUser = Meteor.call("twitter_user")
当尝试访问twitterUser对象时,它显示为未定义。我希望能够使用twitterUser.data.id或twitterUser.data.name从生成的JSON中获取字段,但运气不好(因为该对象不存在)

顺便说一句,如果我将URL放入浏览器,我会在页面上得到一个JSON对象,请参见下面的示例:

您应该对方法使用异步调用:

Meteor.call "twitter_user", (error, result) -> 
  twitterUser = result
引自:

在客户机上,如果不传递回调且不在存根中,则调用将返回undefined,并且无法获取方法的返回值。这是因为客户端没有光纤,所以实际上没有任何方法可以阻止方法的远程执行

注意,在这种特殊情况下,您可以直接在客户端上运行
Meteor.http.get

Meteor.http.get(
   "https://api.twitter.com/1/users/show.json", 
   screen_name:"ppedrazzi",
   (error, result) -> twitterUser = result 
)