基于给定的记录集发布新的记录集

时间:2013-05-19 00:23:15

标签: javascript meteor publish-subscribe

寻找帮助编写发布/订阅代码以发布代表Meteor.users电子邮件地址的一组记录。这对我来说很棘手,因为,发布方法需要根据另一个集合创建并返回一个新的集合......

1 个答案:

答案 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
    }
});