Итак, у меня есть зарегистрированный пользователь (я) в своем приложении. Я знаю, что я вошел в систему, потому что мое имя пользователя отображается на странице. Однако в моем Javascript я не могу получить свое имя пользователя, назначенное переменной.
В файле main.js содержится следующее:
var uniqueID = Meteor.userId();
var username = uniqueID.username;
console.log("uniqueID = "+uniqueID);
console.log("username = "+username);
Журнал консоли показывает:
uniqueID = XGX8Qas2ZLCwNYxTH
username = undefined
Я пробовал следующую строку в файле js на основе сообщения с аналогичной проблемой:
var username2 = Meteor.users.findOne({ _id: Meteor.userId() }).username
Это вызвало прямую ошибку (Uncaught TypeError: Невозможно прочитать имя пользователя "undefined")
Теперь, в консоли браузера, если я добавлю:
Meteor.users.findOne({ _id : "XGX8Qas2ZLCwNYxTH" })
Я получаю ожидаемый ответ: {_id: "XGX8Qas2ZLCwNYxTH", имя пользователя: "welehman"}
Поэтому я полностью потеряю, как вставить имя пользователя. У меня на самом деле было это раньше, но теперь, когда я действительно нуждаюсь в этом, он, конечно, внезапно не работает.
Здесь вы хотите указать всю запись пользователя, а не только идентификатор:
var uniqueID = Meteor.user(); // Not Meteor.userId()
var username = uniqueID.username; // This will work then
Затем также быстро измените переменную uniqueID на более подходящее имя, так как теперь он содержит всего пользователя не только идентификатор.
Tracker.autorun(() => { let user = Meteor.user() ... }