创建不受订阅限制的方法

时间:2014-03-02 19:42:21

标签: meteor

我创建了一种检查电子邮件是否已有帐户的方法:

insertGroupMember: function(eventId, memberDetails) {
    var memberAccount = Meteor.users.findOne({'emails.address': memberDetails.email});

        if (memberAccount) {
            console.log('Existing User')
        } else {
            console.log('Create User')
        }
}

但是当我订阅包含所有users.emails的出版物时,才会收到结果。如何在不发布每个人的电子邮件的情况下实现相同的结果?我认为这对安全/隐私有害,对吗?

1 个答案:

答案 0 :(得分:0)

您是对的 - 您不希望将所有用户发布到客户端只是为了实现此目的。最好的解决方案是创建仅在服务器上定义的method,然后从客户端调用它。

服务器/ methods.js

Meteor.methods({
  insertGroupMember: function(eventId, memberDetails) {
    ...
  }
});

的客户机/ someTemplate.js

Meteor.call('insertGroupMember', eventId, memberDetails, function (err, result){
  ... 
});