Jusqu'ici, j'ai parcouru les pages Web et les documents Meteor, mais rien n'a fonctionné pour moi.
Je crée un compte avec
Accounts.createUser({
username: username,
email: email,
password: password
});
Et je sais que cela fonctionne depuis que {{#if currentUser}}
fonctionne.
Cependant, j'essaie d'obtenir le nom d'utilisateur de l'utilisateur actuellement connecté avec quelque chose comme:
var username = Meteor.userId();
console.log(username);
var username = Meteor.userId().username;
console.log(username);
Mais ni l'un ni l'autre ne fonctionne, lorsque j'utilise Meteor.userId()
, je reçois simplement une chaîne aléatoire de chiffres et de lettres (je devine cryptée), et lorsque j'utilise Meteor.userId().username
, elle indique que ce n'est pas défini.
Toute aide est la bienvenue et désolée pour ma grammaire éventuellement terrible, Il est très tard ici!
Meteor.userId()
renvoie le _id de l'utilisateur depuis la collection Mongo.users . C'est pourquoi cela ressemble à une chaîne dénuée de sens.
Vous voulez Meteor.user()
. Les docs sont votre meilleur ami :)
Essayez avec {{currentUser.username}}
vous devez utiliser username: Meteor.user()
dans le fichier .js .__ et dans le fichier html, utiliser {{username.profile.name}}
Je le fais comme ça:
L'utilisateur doit être connecté, sinon Meteor.user () renvoie null.
Edit: n'oubliez pas que Meteor.user () ne sera disponible que lorsque la collection d'utilisateurs sera envoyée au client.
ajouter aux clients js
Accounts.ui.config ({ PasswordSignupFields: 'USERNAME_AND_EMAIL' });
Je pense que Accounts.createUser -> nom d'utilisateur ne configurera que Meteor.user (). Profile.name. Et si vous voulez avoir Meteor.user (). Nom d'utilisateur, vous devez probablement utiliser aussi Accounts.onCreateUser ( https://docs.meteor.com/#/full/accounts_oncreateuser ) et ajouter un champ de nom d'utilisateur comme:
Accounts.onCreateUser(function (options, user) {
user.username = user.profile.name;
return user;
});
C'est ainsi que Meteor.user () .nomutilisateur est un champ personnalisé dans ce cas.
Tout en un!
Meteor.users.findOne({ _id: Meteor.userId() }).username
Ensuite, vous pouvez soit retourner la valeur à variable, State ou Session ..etc
Meteor.userId();
Ce code ci-dessus renvoie une chaîne qui correspond à l'ID unique de l'utilisateur enregistré Meteor.userId () et non à l'objet utilisateur complet. Donc, vous ne pouvez essayer aucune propriété . Pour que le nom d'utilisateur actuel soit comme suit: 1 -/in meteor controller
var uniqueID = Meteor.userId();
var username = Meteor.users.findOne({_id: uniqueID}).usename;
2 -/dans le modèle météore
{{ currentUser.username }}