使用MeteorJS堆栈,如何从他们发布的帖子中检索用户的电子邮件
问题描述:
MeteorJS新手在这里。我有一个“帖子”的集合,其中包含字段:title,createdAt,body,userId。尽管我只有两个用户,但每个帖子似乎都有不同的userId。我基本上只想显示博客文章,以及他们各自的用户的电子邮件。我目前的执行情况如下,它会显示当前用户,而不是博客文章的电子邮件的所有者的电子邮件:使用MeteorJS堆栈,如何从他们发布的帖子中检索用户的电子邮件
"click .main-feed-post" : function(event) {
...
document.getElementById('post-view-email').innerHTML = Meteor.users.findOne({_id: this.userId}).emails[0].address;
...
}
当前只输出已登录用户的电子邮件地址。以前是查看个人博客文章。另外,我有一个主要的饲料,我列出所有的博客文章和它们各自所有者的电子邮件:
{{#each posts}}
<li class="main-feed-post">
{{title}}
<div class="main-feed-post-data">
<label>BY</label> {{getUserEmail}} <label>AT</label> {{formattedDate}}
</div>
</li>
...
getUserEmail : function() {
return Meteor.users.findOne({_id: this.userId}).emails[0].address;
}
{{/each}}
这是输出什么都没有,除非它是当前用户的电子邮件。理想情况下,我会将用户名字段添加到用户对象,并显示该字段而不是userId或电子邮件。我不确定如何使用accounts-ui和accounts-password软件包来实现这个功能。欢迎任何帮助!提前致谢!
答
内部服务器:
Meteor.publish("allUsers", function() {
return Meteor.users.find({});
});
Meteor.publish("allUserData", function() {
return Meteor.users.find({}, {fields: {"emails.address": 1}});
});
内部客户:
Meteor.subscribe("allUsers");
Meteor.subscribe("allUserData");
Meteor.users.find()取() 从控制台...这只是返回当前用户。 ..通过删除“不安全”软件包,我是否限制用户访问除自己以外的任何用户信息? – programmingmusic