在meteor中从客户端调用http方法时出错

时间:2015-01-21 16:08:23

标签: meteor

我正在尝试在流星应用程序中使用REST API。在服务器文件夹中的server.js文件中,我写了这段代码:

 Meteor.methods({
        checkTwitter: function () {
            this.unblock();
            return Meteor.http.call("GET", "http://search.twitter.com/search.json?q=perkytweets");
        }
    });

在client.js文件中,我在客户端文件夹中写下了这段代码:

  Meteor.call("checkTwitter", function(error, results) {
        console.log(results.content); //results.data should be a JSON object
    });

我在控制台中收到此错误消息: "在模拟调用&checkaewitter'的效果时出现例外情况。错误:无法从客户端进行阻止HTTP调用;需要回调"。 我有客户端定义的回调函数,因为我不理解这个错误。我做错了什么?

2 个答案:

答案 0 :(得分:3)

Meteor.http已被弃用,请参阅HTTP包。

答案 1 :(得分:2)

我认为既然有一个存根,“checkTwitter”实际上也会运行在客户端上。服务器返回后,其结果将覆盖客户端运行的结果。 在这种情况下,由于Meteor.http.call无法在没有回调的情况下在客户端上运行,因此会出现错误。

尝试更改:

Meteor.methods({
         checkTwitter: function () {
             this.unblock();
             return Meteor.http.call("GET", "http://search.twitter.com/search.json?q=perkytweets");
         }
     });

使用

    Meteor.methods({
            checkTwitter: function () {
              if (Meteor.isServer) {
                this.unblock();
                return Meteor.http.call("GET", "http://search.twitter.com/search.json?q=perkytweets");
              }
            }
        });