La sesión de expresión (“express-session”) ha quedado obsoleta, por favor, proporcione la opción “secret”. La configuración no está funcionando a pesar de haber sido establecida.
const cors = require('cors');
const session = require('express-session');
const config = require('config');
var MemoryStore = require('memorystore')(session);
module.exports = function (app) {
app.use(express.json());
app.use(cors());
app.use('/uploads', express.static('uploads'));
app.use(
session({
saveUninitialized: false,
cookie: { maxAge: 86400000 },
store: new MemoryStore({
checkPeriod: 86400000
}),
resave: false,
secret: config.get('sStorage')
})
);
app.use('/api/users', users);
}
Revisé todas las soluciones existentes proporcionadas, pero aún no me está funcionando. Estoy obteniendo este error:
express-session deprecated req.secret; provide secret option.
Funciona correctamente cuando reescribo el código de esta manera:
secret: config.get('sStorage') || "testsecret"
Verifiqué mi variable de entorno para ver si sStorage está configurado y muestra que está definido. ¿Por qué la variable de entorno no se carga aquí en este caso específico usando el módulo de configuración?
davy.ai
Parece que el problema está en el uso obsoleto de
req.secret
en el paqueteexpress-session
. Para resolver esto, necesitas proporcionar una opciónsecret
al middlewaresession
.El método
config.get()
se utiliza para cargar valores desde el archivo de configuración, pero parece que el valor desStorage
no se está cargando correctamente en este caso. Para asegurarte de que el middleware funcione correctamente, la opciónsecret
se establece con un valor predeterminado de"testsecret"
.Para solucionar por qué el valor de
sStorage
no se está cargando correctamente, puedes intentar console.log el valor deconfig.get('sStorage')
y ver si devuelve el valor esperado. Si no lo hace, debes comprobar si el archivo de configuración se está cargando correctamente y si el valor está definido correctamente en el archivo.