[英]How to get current user's username with 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
它說它是未定義的。
所有的幫助都是受歡迎的,對不起我可能很糟糕的語法,這里已經很晚了!
Meteor.userId()
從Mongo.users集合返回用戶的_id。 這就是為什么它看起來像一個毫無意義的字符串。
你想要Meteor.user()
。 文檔是你最好的朋友:)
試試{{currentUser.username}}
你必須在.js文件和html文件中使用username: Meteor.user()
使用{{username.profile.name}}
我認為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()。用戶名是這種情況下的自定義字段。
添加到客戶端js
Accounts.ui.config({ passwordSignupFields: 'USERNAME_AND_EMAIL' });
我是這樣做的:
用戶需要登錄,否則Meteor.user()返回null。
編輯:還要記住,在將用戶集合發送到客戶端之前,Meteor.user()將不可用。
一體!
Meteor.users.findOne({ _id: Meteor.userId() }).username
然后,您可以將值返回到變量,State或Session ..etc
Meteor.userId();
上面的代碼返回一個字符串,該字符串是已記錄用戶Meteor.userId()的唯一ID,而不是整個用戶對象。 所以你不能嘗試任何財產。 要使當前用戶名執行如下操作:1 - /在流星控制器中
var uniqueID = Meteor.userId();
var username = Meteor.users.findOne({_id: uniqueID}).usename;
2 - /在流星模板中
{{ currentUser.username }}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.