Meteor.http方法在服务器上是未定义的?

时间:2012-04-21 23:25:44

标签: javascript http meteor

所以,我正在尝试编写一个进行http调用的方法。当我运行该方法时,我收到以下错误:

  

调用方法'upload'时发生异常TypeError:无法调用未定义的方法'call'

代码如下所示:

客户端:

console.log(Meteor.call('upload', f, content));

服务器:

Meteor.methods({
  upload: function(file, content) {
    this.unblock();
    Meteor.http.call("PUT", "http://blah");
  }
});

更新:问题解决了,结果我必须启用包:meteor add http

2 个答案:

答案 0 :(得分:42)

您只需在项目的命令行中运行此命令即可添加HTTP包:

meteor add http

答案 1 :(得分:3)

您还需要使用Meteor.call客户端进行回调。

来自文档:

  

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

所以你应该改变这个

console.log(Meteor.call('upload', f, content));

到这个

Meteor.call('upload', f, content, function(error, result){console.log(result);});