如何在Meteor JS中按ID选择用户?

时间:2017-01-31 13:04:33

标签: javascript mongodb meteor

我正在尝试使用MeteorJS显示用户个人资料

每个用户都有一个存储在MongoDB中的个人资料,但在导航控制台中,它只向我显示用户名,电子邮件和_id字段。

这是我的代码: 在/lib/Router.js

Router.route('/profile',{
  name : "profile",
  data : function(){
    user = Meteor.users.find(Meteor.userId()).forEach(function(user) {
      console.log(user);
    });
    //console.log(user);
  },
  waitOn : function(){
    return Meteor.subscribe("allUsers");
  }
});

/server/Publications.js

Meteor.publish("allUsers",function(){
  return Meteor.users.find({},{
    fields :{
      username : 1,
      emails : 1,
      profile : 1
    }
  });
});

1 个答案:

答案 0 :(得分:1)

您的个人资料路线看起来有点时髦。在我看来,您只需要当前用户的个人资料,而不是所有用户。我写这个如下:

Router.route('/profile',{
  name : "profile",
  data(){
    return Meteor.user();
  },
  waitOn(){
    return Meteor.subscribe("me");
  }
});

/server/Publications.js:

Meteor.publish("me",function(){
  return Meteor.users.find(this.userId,{
    fields :{
      username : 1,
      emails : 1,
      profile : 1
    }
  });
});