Meteor.userId vs Météore.userId()
J'ai un petit morceau de code, comme ça, pour mettre à jour le nom de mon profil utilisateur:
Meteor.users.update({_id: Meteor.userId()}, {$set:{"profile.name": name}});
Lorsque je travaille en local, je peux utiliser Meteor.userId
ou Meteor.userId()
sans problème. Cependant, quand j'déployer pour le Module, je rencontre des problèmes. Si je n'ai pas l'opérateur sur elle, il va faire la première $set, mais pas plus. Si j'ai de l'utilisateur de la part des opérateurs, il se comporte comme je m'attends.
Pourquoi est-ce? Je suppose que je ne devrais pas avoir été à l'aide de ce sans que l'opérateur pour commencer, mais est-il une raison pour laquelle il a travaillé à tous?
- Meteor.userId() et Meteor.nom d'utilisateur ne peut pas être la même. Meteor.userId retourne une fonction Météore.userId() retourne une chaîne de caractères. je pense que vous parlez à ce sujet.nom d'utilisateur qui est disponible uniquement à l'intérieur de publications et Meteor.des méthodes.
- Nope, aussi étrange que cela puisse être, j'ai été en utilisant un Météore.userId, côté serveur et non pas dans une publication.
- Probablement de la configuration de la _id à la représentation de chaîne de la
Meteor.userId
fonction. Quelque chose comme"function() { ... }"
. Qui va réussir à définir la valeur, mais ce n'est pas ce que vous voulez. Pouvez-vous ouvrir votre mongo de la console et regarder à travers quelques documents pour voir ce que le _id champs ressembler?meteor mongo
de la CL - juste pour être clair, vous écrivez un Météore.userId retourne une fonction, ce qui est incorrect. Les fonctions de retour valeurs (éventuellement), tandis que
Meteor.userId
magasins (est) une fonction.
Vous devez vous connecter pour publier un commentaire.
Ont un coup d'oeil dans le la documentation
La fonction
Meteor.userId()
est disponible "n'importe où, mais de publier des fonctions"La variable
this.userId
est disponible "n'importe où" (ce qui est expressément appelé aussi pour le côté Serveur de Publier la fonction).J'ai eu le même problème avec Meteor.userId() lorsque vous essayez d'obtenir un test unitaire avec moka de travail.
Une solution simple est d'aller à
tasks.js
et remplacerMeteor.userId()
avecthis.userId
quiest d'utiliser le
this
contexte de la fonction.