Las cookies son pequeños datos que se almacenan en el lado del cliente y se envían al cliente junto con las requests del servidor. Las cookies tienen varias funcionalidades, se pueden usar para mantener sesiones y agregar funciones específicas del usuario en su aplicación web. Para ello, utilizaremos el módulo de análisis de cookies de npm, que proporciona un middleware para el análisis de cookies.
Primero configure su directorio del símbolo del sistema en la carpeta raíz del proyecto y ejecute el siguiente comando:
npm init
Esto le pedirá detalles sobre su aplicación y finalmente creará un archivo package.json .
Después de eso, ejecute el siguiente comando e instalará el módulo requerido y lo agregará en su archivo package.json
npm install express cookie-parser --save
El archivo package.json se ve así:
Después de eso, configuraremos la aplicación express básica escribiendo el siguiente código en nuestro archivo app.js en el directorio raíz.
let express = require('express'); //setup express app let app = express() //basic route for homepage app.get('/', (req, res)=>{ res.send('welcome to express app'); }); //server listens to port 3000 app.listen(3000, (err)=>{ if(err) throw err; console.log('listening on port 3000'); });
Después de eso, si ejecutamos el comando
node app.js
Iniciará nuestro servidor en el puerto 3000 y si vamos a la url: localhost:3000, obtendremos una página que muestra el mensaje:
welcome to express app
Aquí hay una captura de pantalla de la página localhost:3000 después de iniciar el servidor:
Entonces, hasta ahora hemos configurado con éxito nuestra aplicación express, ahora comencemos con las cookies.
Para las cookies primero, debemos importar el módulo en nuestro archivo app.js y usarlo como otros middlewares.
var cookieParser = require('cookie-parser'); app.use(cookieParser());
Digamos que tenemos un usuario y queremos agregar esos datos de usuario en la cookie, luego debemos agregar esa cookie a la respuesta usando el siguiente código:
res.cookie(name_of_cookie, value_of_cookie);
Esto se puede explicar con el siguiente ejemplo:
let express = require('express'); let cookieParser = require('cookie-parser'); //setup express app let app = express() app.use(cookieParser()); //basic route for homepage app.get('/', (req, res)=>{ res.send('welcome to express app'); }); //JSON object to be added to cookie let users = { name : "Ritik", Age : "18" } //Route for adding cookie app.get('/setuser', (req, res)=>{ res.cookie("userData", users); res.send('user data added to cookie'); }); //Iterate users data from cookie app.get('/getuser', (req, res)=>{ //shows all the cookies res.send(req.cookies); }); //server listens to port 3000 app.listen(3000, (err)=>{ if(err) throw err; console.log('listening on port 3000'); });
Entonces, si reiniciamos nuestro servidor y hacemos una solicitud de obtención a la ruta: localhost:3000/getuser antes de configurar las cookies, es como sigue:
Después de realizar una solicitud a localhost:3000/setuser, agregará los datos del usuario a la cookie y generará el siguiente resultado:
Ahora, si volvemos a hacer una solicitud a localhost:3000/getuser, ya que esta ruta está iterando los datos del usuario de las cookies usando req.cookies , por lo que el resultado será el siguiente:
si tenemos varios objetos insertados en cookies, entonces podemos acceder a una cookie específica usando req. cookie.nombre_cookie .
Adición de una cookie con tiempo de caducidad
Podemos agregar una cookie con un tiempo de caducidad, es decir, después de ese tiempo, las cookies se destruirán automáticamente. Para esto, debemos pasar una propiedad adicional al objeto res.cookie mientras configuramos las cookies.
Se puede hacer de cualquiera de las dos maneras:
//Expires after 400000 ms from the time it is set. res.cookie(cookie_name, 'value', {expire: 400000 + Date.now()});
//It also expires after 400000 ms from the time it is set. res.cookie(cookie_name, 'value', {maxAge: 360000});
Destruir las cookies:
podemos destruir las cookies utilizando el siguiente código:
res.clearCookie(cookieName);
Ahora hagamos una ruta de cierre de sesión que destruirá los datos del usuario de la cookie. Ahora nuestro app.js se parece a:
let express = require('express'); let cookieParser = require('cookie-parser'); //setup express app let app = express() app.use(cookieParser()); //basic route for homepage app.get('/', (req, res)=>{ res.send('welcome to express app'); }); //JSON object to be added to cookie let users = { name : "Ritik", Age : "18" } //Route for adding cookie app.get('/setuser', (req, res)=>{ res.cookie("userData", users); res.send('user data added to cookie'); }); //Iterate users data from cookie app.get('/getuser', (req, res)=>{ //shows all the cookies res.send(req.cookies); }); //Route for destroying cookie app.get('/logout', (req, res)=>{ //it will clear the userData cookie res.clearCookie('userData'); res.send('user logout successfully'); }); //server listens to port 3000 app.listen(3000, (err)=>{ if(err) throw err; console.log('listening on port 3000'); });
Para destruir la cookie, envíe una solicitud al siguiente enlace:
Para verificar si las cookies se destruyen o no, realice una solicitud de obtención a localhost: 3000/getuser y obtendrá un objeto de cookie de usuario vacío.
Se trata del uso básico de cookies HTTP mediante el uso de middleware de analizador de cookies. Las cookies se pueden usar de muchas maneras, como mantener sesiones y proporcionar a cada usuario una vista diferente del sitio web en función de sus transacciones anteriores en el sitio web.