为什么我的流星应用程序日志到服务器,而不是客户端
Why is my Meteor app logging to server but not client?
我正在构建一个流星应用程序挂钩到twitter api,我没有运气到目前为止让它工作。我使用twit包在服务器端进行调用,它将数据记录到服务器控制台,但是当客户端控制台去记录它时,没有数据。
客户端没有抛出错误,它在else语句中运行console.log来获取结果参数,但它显示为未定义。就好像结果回调在数据返回之前运行,但是我对Meteor的理解。调用方法是,它应该等待,直到它收到服务器的返回,然后才运行。
我在这里做错了什么?
if (Meteor.isClient) {
Template.hello.greeting = function () {
return "Welcome to testing.";
};
Template.hello.recentFollows = function () {
return Session.get("recentFollows");
};
Template.hello.events({
'click #fetchButton': function () {
console.log("Recent tweets from stream!");
userName = "josiahgoff";
Meteor.call('getBananaTweets', function(err, result) {
if(err) {
console.log("error occurred on receiving data on server. ", err);
} else {
console.log("result: ", result);
Session.set("recentFollows", result);
}
});
}
});
}
if (Meteor.isServer) {
Meteor.startup(function () {
Twit = new TwitMaker({
consumer_key: '******',
consumer_secret: '******',
access_token: '******',
access_token_secret: '******'
});
});
Meteor.methods({
getBananaTweets: function () {
Twit.get('search/tweets', { q: 'banana since:2011-11-11', count: 1 }, function(err, result) {
if (err) {
console.log("Error", err);
return err;
} else {
console.log(result);
return result;
}
});
}
});
}
您在服务器代码中使用return
的地方必须不使用:在异步回调中。Twit.get
调用立即返回,函数结束(没有返回值)。所以客户端没有收到任何东西。一段时间后,Twit.get
回来了,但return
在这种情况下没有去任何地方。
这是一个很常见的问题。解决方案是将Twit.get
调用封装到某种形状或形式的光纤中,以使其同步。例如这个答案:Iron Router Server Side Routing callback doesn't work
相关文章:
- 客户端服务器REST API captcha实现
- 如何防止在客户端/服务器两侧对文本框进行sql注入
- 最小化在javascript中客户端/服务器之间发送的数据
- 客户端服务器常量通信PHP
- 调试器在Meteor.call(可能是客户端/服务器调试)之后停止
- 是否有一种方法可以限制要上传到客户端服务器的文件大小
- 我可以只使用JavaScript制作客户端/服务器任务管理器吗
- 使用jQuery和MVC进行客户端-服务器搜索
- C/SSL/JQuery.ajax() 客户端 - >服务器连接重置,但发送了 1 个字节
- 用于客户端-服务器通信和安全的 API 密钥
- RESTful Web 应用程序中的客户端服务器体系结构
- 使用 node.js 进行客户端服务器通信
- 节点.js游戏开发,客户端-服务器数据交换逻辑
- 合并客户端/服务器端模板引擎
- 了解如何在javascript/HTML5/NodeJS中实现客户端-服务器-客户端基础结构
- 在客户端/服务器端检索原始电影大小
- 如何扩展 EJSON 以序列化 Meteor 客户端-服务器交互的 RegEx
- Javascript 服务器端事件与 C 客户端服务器程序
- 快速客户端服务器
- 在 NodeJS 中进行客户端-服务器通信的简单方法