使用Meteor方法传递用户数组

时间:2015-03-31 16:41:29

标签: javascript meteor

我的服务器上有这个Meteor方法:

returnUsers: function(){
        console.log(Meteor.users.find());
}

以下致电我的客户:

'click #share_button': function(ev){
        ev.preventDefault();
        Meteor.call('returnUsers');
 }

但它返回一个空数组:

LocalCollection.Cursor {collection: LocalCollection, sorter: null, _selectorId: undefined, matcher: Minimongo.Matcher, skip: undefined…}

如何返回所有用户的数组?

1 个答案:

答案 0 :(得分:2)

您需要fetch文档才能从方法返回数组。像这样:

returnUsers: function() {
  var selector = {};
  var options = {fields: {username: 1}};
  return Meteor.users.find(selector, options).fetch();
}

请注意,过滤字段以避免将所有用户的秘密发送到客户端至关重要。有关详细信息,请参阅我的common mistakes文章中的“已发布的机密”部分。

在不知道您的用例的情况下很难说,但是对于您的客户端的某些用户子集而言,而不是使用某种方法可能更有意义,而不是在事件中获取所有这些用户。 / p>


为了从服务器返回结果,您应该调用如下方法:

Meteor.call('returnUsers', function(err, users) {
  console.log(users);
});