gpt4 book ai didi

meteor - 将 Meteor 用户发布到管理员

转载 作者:行者123 更新时间:2023-12-04 19:37:04 25 4
gpt4 key购买 nike

我正在尝试将所有电子邮件和“角色”发布给“管理员”用户(使用 meteor-roles 陨石包),并且服务器知道它要发布的内容,但由于某种原因客户端没有收到数据。这是涉及的代码片段:

服务器代码:

Meteor.publish("directory", function() {
if(Roles.userIsInRole(this.userId, 'admin')) {
//next line shows that it outputs that there are 2 documents in this
console.log(Meteor.users.find({}, {fields:{emails:1, roles:1}}).count());
return Meteor.users.find({}, {fields:{emails:1, roles:1}});
} else {
return {};
}
}

客户端代码:

Meteor.subscribe("directory");
Directory = new Meteor.Collection("directory");

//and then to simulate my use for this collection
console.log(Directory.find().count());
//which outputs 0

为什么客户没有收到文件? (而且我肯定是在使用角色为“admin”的帐户登录)

谢谢!

编辑和解决方案!

好的,所以我想出了我做错了什么。我只需要在服务器上发布“目录”,并在客户端订阅。然后,所有用户数据都进入 Meteor.users 集合,我不应该定义自己的“Directory=new Meteor.Collection('directory')”。然后我可以通过 Meteor.users 访问数据。干杯!

服务器:使用与上面相同的代码

客户:

Meteor.subscribe("directory");
console.log(Meteor.users.find().count()); //outputs 2, yay!

最佳答案

您的集合可能应该在开头定义,以便客户知道在哪里写!

此外,您的 Meteor.subscribe("directory"); 在应用程序加载时运行一次。您应该使其具有反应性。

Directory = new Meteor.Collection("directory");

Deps.autorun(function(){
Meteor.subscribe("directory");
});

关于meteor - 将 Meteor 用户发布到管理员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18223106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com