如何使用Meteor获取当前用户的用户名

时间:2014-11-04 05:13:04

标签: javascript meteor

到目前为止,我一直在寻找各种各样的互联网和Meteor文档,但一切都没有为我工作。

我正在使用

创建帐户
Accounts.createUser({
    username: username,
    email: email,
    password: password
});

而且我知道自{{#if currentUser}}正在发挥作用以来它正在发挥作用。

但是,我正在尝试使用诸如

之类的内容获取当前登录用户的用户名
var username = Meteor.userId();
console.log(username);

var username = Meteor.userId().username;
console.log(username);

但两项都没有用,当我使用Meteor.userId()时,我只是随机(我猜测是加密的)数字和字母串,当我使用Meteor.userId().username时,它会说出来&#39 ;未定义。

欢迎所有帮助,对不起我可能很糟糕的语法,非常在这里很晚!

8 个答案:

答案 0 :(得分:10)

Meteor.userId()Mongo.users集合返回用户的_id。这就是为什么它看起来像一个毫无意义的字符串。

你想要Meteor.user()docs是你最好的朋友:)

答案 1 :(得分:9)

尝试使用{{currentUser.username}}

答案 2 :(得分:2)

您必须在.js文件中使用/home/alex/swift/usr/bin/:/home/alex/swift/usr/bin/:#{PATH} 并在html文件中使用username: Meteor.user()

答案 3 :(得分:1)

我认为Accounts.createUser - > username只会设置Meteor.user()。profile.name。如果你想拥有Meteor.user()。用户名,你应该使用Accounts.onCreateUser(https://docs.meteor.com/#/full/accounts_oncreateuser)并添加用户名字段,如:

Accounts.onCreateUser(function (options, user) {

    user.username = user.profile.name;

    return user;

});

就是这样,因为在这种情况下,Meteor.user()。用户名是自定义字段。

答案 4 :(得分:1)

添加到客户js

Accounts.ui.config({
  passwordSignupFields: 'USERNAME_AND_EMAIL'
});

答案 5 :(得分:1)

我这样做:

  1. 包含帐户包:meteor add accounts-password
  2. 从'meteor / meteor'导入{Meteor}
  3. console.log('用户名:'+ Meteor.user()。用户名);
  4. 用户需要登录,否则Meteor.user()将返回null。

    编辑:还要记住,在将用户集合发送给客户端之前,Meteor.user()将不可用。

答案 6 :(得分:1)

一体化!

 Meteor.users.findOne({ _id: Meteor.userId() }).username

然后你可以将值返回给变量,State或Session ..etc

答案 7 :(得分:0)

Meteor.userId();

上面的代码返回一个字符串,该字符串是已记录用户Meteor.userId()的唯一ID,而不是整个用户对象。所以你不能尝试任何财产。 要使用当前用户名,请执行以下操作: 1 - /在流星控制器中

var uniqueID = Meteor.userId(); 
var username = Meteor.users.findOne({_id: uniqueID}).usename;

2 - /在流星模板中

{{ currentUser.username }}