ExpressJS - Cookies

Cookies sind einfache, kleine Dateien / Daten, die mit einer Serveranforderung an den Client gesendet und auf der Clientseite gespeichert werden. Jedes Mal, wenn der Benutzer die Website zurücklädt, wird dieses Cookie mit der Anfrage gesendet. Dies hilft uns, die Aktionen des Benutzers zu verfolgen.

Im Folgenden sind die zahlreichen Verwendungsmöglichkeiten der HTTP-Cookies aufgeführt:

  • Sitzungsverwaltung
  • Personalisierung (Empfehlungssysteme)
  • Benutzerverfolgung

Um Cookies mit Express verwenden zu können, benötigen wir die Cookie-Parser-Middleware. Verwenden Sie zum Installieren den folgenden Code:

npm install --save cookie-parser

Um nun Cookies mit Express verwenden zu können, benötigen wir die cookie-parser. Der Cookie-Parser ist eine Middleware, die an das Clientanforderungsobjekt angehängte Cookies analysiert . Um es zu benutzen, benötigen wir es in unseremindex.jsDatei; Dies kann genauso verwendet werden wie andere Middleware. Hier verwenden wir den folgenden Code.

var cookieParser = require('cookie-parser');
app.use(cookieParser());

Cookie-Parser analysiert den Cookie-Header und füllt ihn req.cookiesmit einem Objekt, das durch die Cookie-Namen verschlüsselt ist. Um ein neues Cookie zu setzen, definieren wir eine neue Route in Ihrer Express-App wie -

var express = require('express');
var app = express();

app.get('/', function(req, res){
   res.cookie('name', 'express').send('cookie set'); //Sets name = express
});

app.listen(3000);

Um zu überprüfen, ob Ihr Cookie gesetzt ist oder nicht, rufen Sie einfach Ihren Browser auf, starten Sie die Konsole und geben Sie - ein.

console.log(document.cookie);

Sie erhalten die Ausgabe wie folgt (möglicherweise haben Sie mehr Cookies gesetzt, möglicherweise aufgrund von Erweiterungen in Ihrem Browser) -

"name = express"

Der Browser sendet außerdem jedes Mal Cookies zurück, wenn er den Server abfragt. Fügen Sie dieser Route den folgenden Code hinzu, um Cookies von Ihrem Server auf der Serverkonsole in einer Route anzuzeigen.

console.log('Cookies: ', req.cookies);

Wenn Sie das nächste Mal eine Anfrage an diese Route senden, erhalten Sie die folgende Ausgabe.

Cookies: { name: 'express' }

Hinzufügen von Cookies mit Ablaufzeit

Sie können Cookies hinzufügen, die ablaufen. Um ein Cookie hinzuzufügen, das abläuft, übergeben Sie einfach ein Objekt mit der Eigenschaft 'expire' auf den Zeitpunkt, zu dem es ablaufen soll. Zum Beispiel,

//Expires after 360000 ms from the time it is set.
res.cookie(name, 'value', {expire: 360000 + Date.now()});

Eine andere Möglichkeit, die Ablaufzeit einzustellen, ist die Verwendung 'maxAge'Eigentum. Mit dieser Eigenschaft können wir die relative Zeit anstelle der absoluten Zeit angeben. Das Folgende ist ein Beispiel für diese Methode.

//This cookie also expires after 360000 ms from the time it is set.
res.cookie(name, 'value', {maxAge: 360000});

Vorhandene Cookies löschen

Verwenden Sie zum Löschen eines Cookies die Funktion clearCookie. Zum Beispiel, wenn Sie ein Cookie mit dem Namen löschen müssenfooVerwenden Sie den folgenden Code.

var express = require('express');
var app = express();

app.get('/clear_cookie_foo', function(req, res){
   res.clearCookie('foo');
   res.send('cookie foo cleared');
});

app.listen(3000);

Im nächsten Kapitel erfahren Sie, wie Sie Cookies zum Verwalten von Sitzungen verwenden.