
Las sesiones no pueden faltar en un servidor web. En este tutorial aprenderemos a configurar nuestro servidor de Express para que acepte sesiones.
Recuerden que cuando creamos un servidor con ExpressJS, este servidor viene sin ningún tipo de configuración y es ahí donde nosotros debemos ir agregando lo que creamos necesario. Las sesiones son inevitables para cualquier aplicación web, así que aprenderemos a configurarlas correctamente en un servidor en Express.
Requerimientos
Para poder configurar sesiones antes necesitamos configurar algo más: las cookies. Para esto utilizaremos un módulo llamado cookie-parser.
Cookie Parser
Cookie Parser es un módulo que podemos instalar vía npm y que nos permite configurar cookies dentro de nuestro servidor. Ahora tenemos que instalarlo.
$ npm install cookie-parser
Si desean que la dependencia se guarde en su package.json utilicen --save. Ahora vamos con la configuración de las cookies.
// server.js
'use strict'
const express = require('express'),
cookieParser = require('cookie-parser');
const app = express();
app.use(cookieParser());
app.listen(8000);
app es nuestro servidor de express, para utilizar cookies solo debemos requerir el modulo y utilizarlo por el servidor de express app.use().
Ahora ya podemos configurar las sesiones, para las sesiones debemos utilizar un módulo llamado express-session.
Express Session
Como cualquier otro módulo de Node, es instable vía npm.
$ npm install express-session
Ya saben que el --save es opcional. Vayamos a la configuración.
// server.js
const session = require('express-session');
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true
}))
Recuerden que para eso deben tener su servidor de express, pueden revisar la configuración de las cookies. Las sesiones pueden recibir más de 3 parámetros, esto depende de lo que necesites, así que puedes revisar la documentación de express-session para los detalles de cada parámetro.
Con esto ya tendrán disponible la variable req.session en sus controladores, y también un id único para la sesión de un usuario que podemos acceder mediante la variable req.sessionID.
Con esto ya tenemos nuestro servidor de express configurado con sesiones y cookies, recuerda que también tenemos cursos de Node.js y Fundamentos de Node.js donde explicamos esto y muchas otras cosas con más detalle.
