获取客户端流星上的多个用户数据

Get Multiple Users Data on Client Meteor

本文关键字:用户 用户数 数据 客户端 流星 获取      更新时间:2023-09-26

所以我希望能够获取所有用户_id和用户名在我的模板中使用。我正在服务器/出版物中创建出版物.js如下所示:

Meteor.publish('allUserData', function(){
   Meteor.users.find({}, { fields : {
       username : 1,
       _id : 1
   }});
});

但我一辈子都无法获得所有用户数据。我仍然只能获取当前登录用户的用户数据。我尝试在不同的地方订阅;主.js,在我的路由和我的集合 js 文件中。

我尝试订阅然后在订阅回调中调用数据,但这也没有用。

所以我想知道,我这样做的方式是否正确?我应该把我的订阅放在哪里?为什么它没有像我想要的那样工作?我在学习流星的第 2 天,所以任何帮助将不胜感激。

你缺少return

Meteor.publish('allUserData', function(){
  return Meteor.users.find({}, {fields : {username : 1}});
});

另请注意,您无需在 fields 中指定_id,因为它是自动添加的。

您不会在发布函数中返回任何游标。当你这样做时,Meteor 假设你使用的是低级添加/更改/删除的界面,这不是你在这里追求的。更改函数以从 find() 返回光标:

Meteor.publish('allUserData', function() {
    return Meteor.users.find({}, { fields : { username : 1, _id : 1 }});
});

(顺便说一句,_id: 1不是必需的)然后在客户端中在适当的位置(取决于的位置)订阅,例如在自动运行中:

Tracker.autorun(function () {
    Meteor.subscribe("allUserData");
});