【发布时间】:2017-11-30 20:30:44
【问题描述】:
今天有点卡住了,找了一堆相关的话题,还是没解决。我对 Meteor 有点陌生,可能没有以正确的方式进行操作,但自动发布已被删除。
我在与客户端/服务器共享的 lib/import 文件夹中将集合创建为 const。接下来,我在 Async 中调用服务器方法将数据插入到集合中。到目前为止一切顺利,我认为(我看到了 db mongo 中的数据)。
现在在 client.js 中,我想处理与用户相关的每个数据,然后将其附加到模板或做一些其他事情。
// 服务器
Meteor.publish("pipeline", function() {
var data = pipeline.find({}, {fields: {userID:this.userID}}).fetch();
return data;
});
// 客户
var loadCurrentPipeLineUser = Meteor.subscribe('pipeline');
var data = pipeline.findOne({userID: Meteor.userId()});
console.log(loadCurrentPipeLineUser);
console.log(data);
loadCurrentPipeLineUser 和 data 都返回未定义。 loadCurrentPipe 的输出(我认为这意味着未定义)是:
在服务器端,在发布内部,它会在控制台上打印所有内容。
【问题讨论】:
-
是的,请查看@EvgenyKolyakov 提供的链接。您没有为您的客户端代码提供任何上下文,但如果您真的在订阅后立即执行 findOne(),那么您已经为自己创建了一个竞争条件。即它有时会“工作”,但大多数时候可能不会。
标签: javascript mongodb meteor