Einer der verwirrendsten Aspekte, die ich bei Meteor beobachtet habe, ist, dass Sitzungen bei jeder Aktualisierung gelöscht werden. Da es sich nicht um einen dauerhaften Speicher handelt, wo würde ich Dinge wie Benutzer-ID einfügen oder wo sind Personen in der Statusmaschine meiner Anwendung?
Was sind die Muster für diese Szenarien?
Eigentlich könnte man eine "Unterklasse" von Session erstellen, die den Wert im lokalen Speicher von Amplify speichert, wenn set () aufgerufen wird. Sie würden automatisch alle reaktiven Eigenschaften von Session erben. Hier ist der Code, es funktionierte für mich:
%Vor%Ersetzen Sie einfach alle Ihre Session.set / get Anrufe durch SessionAmplify.set / get Anrufe. Wenn set () aufgerufen wird, wird die übergeordnete Session-Methode sowie amplify.store () aufgerufen. Wenn die "Unterklasse" zuerst erstellt wird, lädt sie alles, was im Speicher von Amplify ist, in ihre Schlüssel, so dass sie sofort mit get () abgerufen werden können.
Sie können eine funktionierende Variante des Leaderboard-Beispiels hier testen: Ссылка
Nun, zunächst würde ich Meteore in Auth zum Speichern verwenden Benutzeridentifikation. Sie verwenden standardmäßig lokalen Speicher, denke ich, aber AFAIK gibt es keine einfache Möglichkeit, sich daran zu hängen.
Allerdings hätte ich gedacht, wenn Sie wollen, dass die Dinge über Aktualisierungen hinweg bestehen, sollten Sie sie entweder in Mongo speichern oder die URL verwenden, um anzugeben, wo sie sich in der Statusmaschine befinden. Sie können den Bootstrap-Router (zum Beispiel) verwenden, um pushState
zum Ändern der URL zu verwenden.
Tags und Links node.js meteor session-state state-machine-workflow user-identification