簡體   English   中英

如何使用Meteor獲取當前用戶的用戶名

[英]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'
});

我是這樣做的:

  1. 包括一個帳戶包:meteor add accounts-password
  2. 從'流星/流星'導入{流星}
  3. console.log('Username:'+ Meteor.user()。username);

用戶需要登錄,否則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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM