到目前为止,我一直在寻找各种各样的互联网和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 ;未定义。
欢迎所有帮助,对不起我可能很糟糕的语法,非常在这里很晚!
答案 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)
我这样做:
用户需要登录,否则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 }}