MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Was mache ich falsch, wenn ich Daten in Meteor/MongoDB manipuliere?

Vorlagenhelfer sind reaktiv, was bedeutet, dass sie sich selbst aktualisieren, wenn sich der App-Status ändert oder neue Daten erscheinen. In Ihrem Fall wird der Helfer sofort aufgerufen, wenn das Template gerendert wird und vor Meteor.users Sammlung ist gefüllt. Daher die .findOne() Die Methode gibt undefiniert zurück. Es wird im zweiten Durchlauf korrigiert, nachdem neue Daten eintreffen.

Die einfache Lösung besteht darin, zu überprüfen, ob die Daten im Helfer vorhanden sind:

myClub: function(){
  var currenUserId = Meteor.userId();
  var user = Meteor.users.findOne({_id: currenUserId});
  if(!user) return 'NO DATA';
  return user.role;
},

Im wirklichen Leben möchten Sie wahrscheinlich warten, bis die grundlegenden Daten geladen sind, bevor Sie die Vorlage rendern. Dies geschieht normalerweise auf Controller-Ebene.