Javascript 发布用户数据,用于配置文件页面
因此,我正在创建一个用户配置文件页面,并获得了当前用户的所有数据。我遇到的问题是当前用户看不到其他用户的数据 我已经看过了所有我能在网上找到的东西,但没有找到一个对我有帮助的答案,只是做一件事的许多不同方式 我的出版物Javascript 发布用户数据,用于配置文件页面,javascript,meteor,Javascript,Meteor,因此,我正在创建一个用户配置文件页面,并获得了当前用户的所有数据。我遇到的问题是当前用户看不到其他用户的数据 我已经看过了所有我能在网上找到的东西,但没有找到一个对我有帮助的答案,只是做一件事的许多不同方式 我的出版物 Meteor.publish('allUsers', function(user){ return Meteor.users.find({_id: this.userId},{ fields: { profile: 1,
Meteor.publish('allUsers', function(user){
return Meteor.users.find({_id: this.userId},{
fields: {
profile: 1,
emails:1,
username: 1
}
});
});
我的路由器
Router.route('/profile/:_id', {
name: 'profile',
waitOn: function(){
return Meteor.subscribe('allUsers')},
data: function(){
var user = this.params._id;
return Meteor.users.findOne({_id: user});
},
});
配置文件模板
<template name='profile'>
Username: {{username}}<br>
Email: {{email}}
{{log}}
{{#with profile}}
Full Name: {{name}}
{{log}}
{{/with}}
</template>
这就是我链接到其他用户的方式
所有者是用户_id:
当前用户的日志输出显示数据,而另一用户的日志输出为空对象。尽管它在您的
allUsers
出版物中抓取了正确的_-id.,但您可以找到具有{u-id:this.userId}
的用户this.userId
是订阅用户的ID。这意味着您发布的是用户自己的数据,而不是任何其他用户的数据。如果要发布所有用户,则需要使用.find({},{fields:…})
对于具有多个用户的应用程序,发布所有用户不是一个好主意,因此您可以只发布一个用户:
Meteor.publish("userById", function (requestedUserId) {
return Meteor.users.find({_id: requestedUserId}, {fields: ...});
});
然后在路由器中订阅时,传入用户id:
Meteor.subscribe("userById", this.params._id);
我建议重新阅读你的问题标题——你是想发布用户数据还是日期?我会编辑它,但是我知道你的意图。呜呜,我的错错过了,现在可以解决了谢谢你,这很有效,会使用更安全的选项。
Meteor.subscribe("userById", this.params._id);