Tengo un servidor expressjs y quiero almacenar la sesión en redis. Tengo mi middleware de sesión que se parece a lo siguiente:
//Importing required packages/files const session = require('express-session'); const {v4: uuidv4} = require('uuid'); //Redis const redisStore = require('connect-redis')(session); const redis = require('redis'); const redisClient = redis.createClient({ host: 'localhost', port: 6379 }); redisClient.connect().then(() => console.log('Redis connected!')); //Use Middleware module.exports = (app) => { app.use( session({ store: new redisStore({ client: redisClient }), secret: [process.env.SIGN_SESSION, process.env.VALIDATE_SESSION], name: 'sessionId', genid: function(req) { return uuidv4(); }, saveUninitialized: false, resave: false, cookie: { httpOnly: true, sameSite: true, secure: process.env.ENV === 'prod', signed: true } }), ); console.log('Middleware loaded! (Session)'); };Todo parece funcionar bien... hasta que llego al inicio de sesión donde almaceno el objeto de usuario dentro de una variable de sesión. Antes de cambiarme a Redis, solía hacer algo así.
const userObj = { uid: apiResponse.message[0]._id, username: apiResponse.message[0].username }; //Set user session object req.session.user = userObj; Pero ahora, después de configurar el almacén de sesión en Redis, no puedo configurar ninguna variable de sesión. Siempre obtengo el error de redis TypeError: Invalid Argument Type . Ya traté de encadenarlo con JSON o para probar solo establecí el nombre de usuario ... pero cada vez que intento establecer un valor, me arroja un error.