J'essaie d'insérer un ID de document dans la clé user.profile dans Accounts.onCreateUser(), afin de pouvoir associer un document distinct à une collection différente (contenant des informations utilisateur) à un utilisateur lorsqu'ils sont connectés.Ajout du document associatif _id à la clé user.profile dans Accounts.onCreateUser()
//serverMain.js
Accounts.onCreateUser(function(options,user){
var userId = user._id;
user.profile = user.profile || {};
_.extend(user.profile, {profComp: false});
insertShopObject(userId);
return user;
});
L'insert J'utilise est
insertShopObject(userId);
Cela permet d'insérer un nouveau document avec des champs prédéfinis dans un séparé collection appelée 'ShopList', j'ai passé dans l'userId comme paramètre est ajouté en tant que champ dans la collection 'ShopList'. Je peux voir à partir de la console du serveur que le document _id est retourné quand j'appelle insertShopObject (userId);
Je veux en quelque sorte d'attraper cet identifiant lorsque le document est inséré et l'ajouter dans la clé de user.profile sur la création d'utilisateur comme si
_.extend(user.profile,{shopId: <-- ?-->})
Voici la fonction insertShopObject, je essayé de revenir au lieu de consigner la consignation du résultat dans une variable de maintien sans chance.
//serverMain.js
insertShopObject = function(userId){
var newShop = {
//pre-set fields.....
}
ShopList.insert(newShop, function(error,result){
if(error){console.log(error);}
else {console.log(result)}
});
}
Vous insérez de manière asynchrone sur le serveur, alors que vous pouvez insérer de façon synchrone, obtenir l'identifiant et l'ajouter aux données de l'utilisateur. – MasterAM
Un grand merci Michel et MasterAM. – Charlie