Sitzungen ermöglichen es Ihnen, den Status zwischen verschiedenen HTTP-Anfragen zu speichern und wiederherzuzustellen. Bei jedem Besuch einer Website wird diese eingehende Anfrage als voneinander unabhängig betrachtet, es besteht also kein Zusammenhang zwischen dem Besuch der Homepage und dem späteren Anmelden. Sitzungen ermöglichen Ihnen, diese Anfragen miteinander zu verknüpfen.
Die Verwaltung von Sitzungen in Node.js kann durch die Verwendung von Modulen wie “express-session” und “connect-mongo” erfolgen. Hier sind die allgemeinen Schritte, die Sie befolgen können:
1. Installieren Sie die Pakete, indem Sie die folgenden Befehle ausführen:
```
npm install express-session
npm install connect-mongo
```
2. Importieren Sie diese Pakete in Ihre Datei:
```javascript
var session = require(‘express-session’);
var MongoStore = require(‘connect-mongo’)(session);
```
3. Konfigurieren Sie nun die Sitzung:
```javascript
app.use(session({
secret: ‘somesecrettokenhere’,
resave: false,
saveUninitialized: true,
store: new MongoStore(options)
}));
```
Im obigen Code:
- `secret`: Ein String Wert, der für das Signieren der Sitzungs-ID-Cookie verwendet wird.
- `resave`: Wenn true, wird die Sitzung in der Sitzungsspeicherung erneut gespeichert, auch wenn die Sitzung während der Anforderung nicht geändert wurde.
- `saveUninitialized`: Wenn true, wird eine neue, nicht veränderte Sitzung auf dem Server gespeichert.
Der `MongoStore` wird verwendet, um die Sitzungsinformationen in einer MongoDB-Datenbank zu speichern. Sie können die Verbindungsoptionen in `new MongoStore(options)` übergeben, um eine Verbindung zu Ihrer MongoDB-Datenbank herzustellen.
4. Jetzt können Sie `req.session` verwenden, um die Sitzungsdaten zu setzen und zu erhalten:
```javascript
// zum Setzen von Sitzungsdaten
req.session.key = ‘value’;
// zum Abrufen von Sitzungsdaten
var value = req.session.key;
```
Die Sitzungsdaten sind für die Dauer der Sitzung zwischen den HTTP-Anfragen verfügbar und werden automatisch gelöscht, wenn die Sitzung abläuft oder der Benutzer sich abmeldet.
Bitte beachten Sie, dass dies eine sehr grundlegende Implementierung der Sitzungsverwaltung in Node.js ist. In einer echten Anwendung müssen Sie sich um sicherheitsrelevante Aspekte kümmern wie zum Beispiel sichere Cookies, Sitzungszeitüberschreitung und die Handhabung von gleichzeitigen Sitzungsänderungen.