我正在尝试在流星应用程序中使用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调用;需要回调"。 我有客户端定义的回调函数,因为我不理解这个错误。我做错了什么?
答案 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");
}
}
});