使用已启用的帐户包和已禁用的autopublish发布meteor中的所有用户

时间:2014-09-05 15:09:37

标签: javascript meteor

我希望向所有客户发布所有用户集合。我删除了autopublish包并将帐户包添加到项目中。我知道帐户包只将用户集合发布给登录用户,但我想发送完整的用户集合。

发布/子代码:

if (Meteor.isServer) {
  Meteor.publish('users', function() {
    return Meteor.users.find();
  });
}
if (Meteor.isClient) {
  Meteor.subscribe('users');
}

以下是希望显示mongodb所有用户的模板:

Template.userList.helpers({
  users: function () {
    return Meteor.users.find(); 
  }
});

2 个答案:

答案 0 :(得分:2)

以下设置: 我创建了meteor项目并删除了autopublish和insecure包,并将accounts-password包添加到我的项目中。

发布/子代码:

if (Meteor.isServer) {
  Meteor.publish('usersData', function() {
    return Meteor.users.find();
  });
}
if (Meteor.isClient) {
  Meteor.subscribe('usersData');
}

模板:

<template name="userList">
    <h1> Users </h1>
    <ul>
      {{#each usersList}}
        {{> userItem}}
      {{/each}}
    </ul>
</template>

<template name="userItem">
  <li>{{username}}</li>
</template>

模板助手:

Template.userList.helpers({
  usersList: function () {
    return Meteor.users.find(); 
  }
});

作品。

请避免使用流星预定义变量名称(如用户),避免在调试过程中出现混淆

答案 1 :(得分:0)

if(Meteor.isServer){

 Meteor.publish(null, function() {
      return Meteor.users.find();
 });

}

这是没有订阅的合适方式,它会发布所有用户集合, 但这不可取。