从Meteor.user()。用户名中查找用户名并将其与其他集合进行匹配

时间:2017-03-04 19:35:57

标签: javascript node.js meteor

假设我有一个Meteor.user()对象,如下所示:

{_id: "xxxxxxxx", username: "john"}

我有一个名为profiles的不同集合,如下所示:

{_id: "yyyyyyy", username: "john", firstname: "John", lastname: "Doe", etc...}

显然,我可以从username设置profiles的{​​{1}}属性。

但是,当我尝试在客户端上匹配此信息时:

Meteor.user().username

并在我的jade模板中使用此代码:

import Profile form '../imports/api/profiles'

Template.AddInfo.helpers({
   interests(){
   return Profile.find({username: Meteor.user().username});
  }
});
什么都没有出现。

注意:我也尝试过each interests p #{username} 同样的结果。

我在这里做错了什么?这是在客户端处理findOne({...})的方式的问题吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您似乎没有订阅发布Profile数据的出版物。假设您没有使用autopublish,那么您必须在服务器上定义发布功能。

Meteor.publish("profiles", function () {
  return Profile.find({});
});

然后在onCreated回调中从您的模板订阅此内容。

Template.AddInfo.onCreated(function() {
  this.subscribe('profiles');
});