J'ai déjà rejoint un groupe de cahiers d'étude pour partager mes résultats d'apprentissage grâce à des notes d'étude. Envoyez-en un ici aussi.
Lorsque nous écrivons un Web, nous aurons inévitablement besoin d'utiliser des cookies. Étant donné que Node.js dispose du framework Web express, nous pouvons facilement créer des sites Web. Lors de l'utilisation d'express, le plug-in à cookie-batt-parser est souvent utilisé. Aujourd'hui, nous analyserons ce plug-in.
Ce plugin est généralement utilisé comme middleware, app.use (cookieParser ()), afin qu'il puisse gérer chaque cookie demandé.
À en juger par le nom, il s'agit d'un outil pour expliquer les cookies. Les coincements peuvent récupérer les cookies passés et les convertir en objets. Ensuite, plongeons dans son code source.
Tout d'abord, regardons index.js
Le code de copie est le suivant: var cookie = require ('cookie');
var parse = require ('./ lib / parse');
Il y a 2 références ici, l'une est le cookie et l'autre est la fonction principale du cookie-parser. Le module cookie ne fournit que 2 méthodes, l'une est sérialisée et l'autre est l'analyse.
La méthode sérialisée reçoit la clé et Val et la sérialise.
La copie de code est la suivante: var hdr = cookie.serialize ('foo', 'bar'); // hdr = 'foo = bar';
La méthode paser convertit les chaînes en objets
La copie de code est la suivante: var cookies = cookie.parse ('foo = bar; cat = meow; dog = ruff'); // cookies = {foo: 'bar', chat: 'meow', chien: 'ruff'};
Examinons ce qui suit, qui est la principale fonction cookiepaser de cookie-parser.
La copie de code est la suivante: exports = module.exports = fonction cookieParser (secret, options) {
return fonction cookieParser (req, res, suivant) {// Obtenez l'objet req, res de la demande
if (req.cookies) renvoie suivant (); // s'il y a déjà un objet cookie, sortez du middleware et continuez à fonctionner
var cookies = req.heders.cookie; // Obtenez des cookies des en-têtes
req.secret = secret; // s'il y a un secret passé, réglé sur l'objet req
req.cookies = object.create (null); // Créer un objet vide pour req.cookies
req.SignedCookies = object.create (null); // Créer un objet vide pour req.SignedCooKies
// pas de cookies
if (! cookies) {// si vous n'obtenez pas de cookies des en-têtes
return next (); // quitte le middleware et continuez à fonctionner
}
req.cookies = cookie.parse (cookies, options); // Appelez l'analyse des cookies pour convertir la chaîne de cookies en objet cookies.
// Cookies signés d'analyse
Si (secret) {// Si le secret est défini, utilisez les deux méthodes d'analyse pour signer le cookie.
req.SignedCookies = parse.signedCooKies (req.cookies, secret);
req.SignedCookies = parse.jsoncookies (req.SignedCooKies);
}
// Analyser les cookies JSON
req.cookies = parse.jsoncookies (req.cookies); // Convertir l'objet req.cookies
suivant();
};
};
Après avoir lu cette fonction principale, nous sommes encore un peu confus, ce qui se trouve être son fichier principal parse.js. Voyons ce qu'est ce fichier pour la prochaine fois.
Ce qui précède est l'intégralité du contenu du middleware de cookie-parser Node.js. J'espère que cela pourra vous donner une référence et j'espère que vous pourrez soutenir Wulin.com plus.