2012-11-22 4 views

Antwort

2

Ein primitiver Weg dies zu tun ist auf eine Änderung in Meteor.userId() mit Meteor.autorun zu hören. Wenn Sie in der Lage sind, dies zu erhalten, würden Sie wissen, dass Sie mit MongoDB verbunden sind. Wenn Sie sich nicht mit der Authentifizierung befassen, können Sie auf der Serverseite eine Methode erstellen, die etwas von MongoDB zurückgibt. Wenn etwas zurückgegeben wird, können Sie bei Erfolg auf der Clientseite alle Abonnements starten.

+0

Ja, dies ist der nützlichste und einfachste Weg, dies zu tun. –

+0

Es sollte einen besseren Weg geben, die Mongo-Bereitschaft zu überprüfen, aber ich denke, dass sie momentan nicht auf der Prioritätenliste für Meteor steht. – HGandhi

2

Die zuverlässigste Methode hierfür ist der Aufruf Meteor.call. Wenn Sie dies als einen synchronen Aufruf (kein Rückruf) tun, wartet der Client, bis der Aufruf abgeschlossen ist. Hier ist, wie es asynchron zu tun:

Meteor.call('isEverythingReady', param1, 
    function(error, result) { 
     if (error === undefined) { 
     Meteor.subscribe("mystuff"); 
     Session.set("sess1", "whatever"); 
     } else { 
     alert("There was an error during startup."); 
     } 
    }); 

und dann

if (Meteor.isServer) { 
    Meteor.methods({ 
    isEverythingReady: function(param1) { 
     // can you connect to database? 
     return true; 
    } 
    } 
} 
+0

Ich hatte das gleiche Problem bei einem meiner Projekte in Meteor und diese Antwort funktionierte, als ich ihre Dokumente durchging und mir selbst herausfand, wie es geht. Allerdings sollten Sie wahrscheinlich auflisten, wie Sie die Funktionen ausführen (Hinzufügen der Bearbeitung zu Ihrer Antwort) – Charles

+0

Ich bin mir nicht sicher, ob ich Ihren Kommentar verstanden habe - die Callback-Funktion ist im obigen Ausschnitt dargestellt. –

+0

Nun ja, aber die Funktion zu nennen war nicht aufgelistet, wie man es erstellt, als ich das ursprünglich versucht hatte, versuchte ich, eine Standardfunktion x() anstelle einer meteor.methods() zu machen. Und was die Frage im Kommentar angeht, ja, Sie können sich auf diese Weise mit der Datenbank verbinden. – Charles

Verwandte Themen