寻找帮助编写发布/订阅代码以发布代表Meteor.users电子邮件地址的一组记录。这对我来说很棘手,因为,发布方法需要根据另一个集合创建并返回一个新的集合......
答案 0 :(得分:0)
您不希望对发布/订阅执行此操作。我建议制作一个Meteor Method。您可以从客户端和服务器上调用它(因为服务器有权访问所有内容),它将收集所有电子邮件,并将其发送回客户端。然后,您不必让客户端访问其余任何内容。
// On the server
Meteor.methods({
userEmails: function() {
users = [];
// For each user, add the user's address to the array
Meteor.users.forEach(function(user) {
users.push(user.emails[0].address);
});
// Return the array of emails
return users;
}
});
然后,您可以从客户端调用它:
// On the client
Meteor.call('userEmails', function (error, result) {
// When the server returns the list of emails, this will run
if (error) {
// There was an error
} else {
// Do something with the result, which is the array of emails
}
});