У меня очень маленькое экспресс-приложение, чтобы проиллюстрировать мою проблему.
Я использую connect-redis в качестве хранилища сеансов в моем экспресс-приложении.У меня проблема просто подключиться к нему, хотя.Простая печать req.session.store
приводит к undefined
, как показано ниже:
const session = require('express-session')
const app = require('express')()
const RedisStore = require('connect-redis')(session);
const isDev = process.env.NODE_ENV !== 'production'
app.use(session({
store: new RedisStore({
host: 'localhost',
port: 6379
}),
secret: 'super-secret-key', // TBD: grab from env
resave: false,
saveUninitialized: false,
cookie: {
maxAge: 1000 * 60 * 60 * 24,
secure: !isDev, // require HTTPS in production
}
}))
app.get('/', (req, res) => {
console.log('**testing**')
console.log(req.session.store)
res.send('rendering this text')
})
app.listen(3001, () => {
console.log('listening on 3001')
})
Вывод этого:
listening on 3001
**testing**
undefined
В свойстве store
яПопытка подключения через свойство url
и свойство client
в дополнение к текущему методу host
и port
.
Я также не вижу никаких ошибок, поэтому я не уверенпочему store
всегда не определено.
Чего мне не хватает с этим?
также , я начал redis, используя redis-server
, и я могу подключитьсяк нему через других клиентов
Обновление 1
Кроме того, я посмотрел на этот StackOverflow , который некоторые сочли полезным.Проблема заключается в том, что с версии 1.5>
express-session
написано, что вам не нужен модуль cookie-parser
, поэтому я не верю, что это проблема.