У меня есть очень маленькое экспресс-приложение, чтобы проиллюстрировать мою проблему.
Я использую 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
говорится, что вам не нужен _14 _ модуль, поэтому я не думаю, что проблема в этом.
store
недвижимость? Я не вижу этого в документации. Насколько я понимаю, ваш магазин хранится в самом свойствеsession
.req.session
определен? - person willascend   schedule 01.01.2019