Ständiger Sitzungsspeicher im Knoten

8

Ich habe gerade einen Node-Server laufen, ich benutze npm forever , um ihn laufen zu lassen, wenn ich nicht entwickle, und ich benutze npm nodemon , wenn ich bearbeite (App beim Editieren / Upload neu starten).

Ich habe festgestellt, dass Sitzungsdaten verloren gehen, wenn ich meine App neu starte, und meine Spieler müssen sich erneut bei ihren Accounts anmelden. Es ist kein riesiger Deal, aber ich habe mich gefragt, ob es eine Möglichkeit gibt, meine server.js-Seite zu bearbeiten, ohne die App neu zu starten und alle abzumelden?

(Beachten Sie, dass dies nur für server.js oder Moduländerungen gilt. .html und .js Seiten, die bedient werden, erfordern keinen Neustart)

(Zweite Anmerkung: Ich benutze mysql, nodejs, angularjs, express.io für all das, nur für den Fall, dass jemand fragt)

    
Sterling Archer 04.04.2014, 18:57
quelle

1 Antwort

7

Es gibt keine Möglichkeit, eine Datei zu bearbeiten (und die Änderungen laden zu lassen), ohne den Server neu zu starten und die Datei neu zu laden. Speichern Sie Ihre Sitzungsdaten stattdessen an einem anderen Speicherort als dem Arbeitsspeicher. Ich weiß, dass Sie MySQL verwenden, verwenden Sie also das Paket connect-mysql (es gibt andere Pakete wie diese für Redis) , MongoDB usw.).

Es ist so einfach, das in Ihre app.js -Datei einzufügen:

%Vor%

Dadurch wird ein HTTP-only-Cookie (d. h. der Benutzer kann es nicht sehen / verwenden) auf den Computer jedes Benutzers gesetzt. Auch nach einem Neustart des Servers kann connect-mysql einen Benutzer mit seinen Sitzungsdaten in MySQL über diesen Cookie identifizieren.

    
SomeKittens 04.04.2014, 19:01
quelle