我的服务器上有这个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…}
如何返回所有用户的数组?
答案 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);
});