24

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

调用方法“上传”类型错误时出现异常:无法调用未定义的方法“调用”

代码如下所示:

客户:

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

服务器:

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

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

4

2 回答 2

41

您只需要通过在项目的命令行上运行它来添加 HTTP 包:

流星添加http

于 2012-04-22T01:06:22.893 回答
3

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

从文档中:

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

所以你应该改变这个

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

对此

Meteor.call('upload', f, content, function(error, result){console.log(result);});
于 2012-11-24T06:54:35.443 回答