Я пытаюсь получить доступ к данным сеанса в экспресс, поэтому я подумал, что я попытаюсь объявить хранилище сеанса connect-redis при настройке экспресс. Однако я не понимаю, почему это не работает:Использование RedisStore в nodejs/expressjs
var express = require('express');
var http = require('http');
var RedisStore = require('connect-redis')(express);
var app = express();
app.set('port', process.env.PORT || 3000);
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({ secret: "keyboard cat", store: new RedisStore }));
//app.use(express.session({ secret: "keyboard cat" }));
app.use(app.router);
app.get('/', function(req, res){
console.log('/');
req.session.items = [ 'apple', 'orange' ];
res.end('items configured');
});
app.get('/items', function(req, res){
console.log('/items: ', req.session.items);
var s = JSON.stringify(req.session.items);
res.end('items: ' + s);
});
var server = http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
Маршрут '/' просто настраивает элементы с сеансом.
Маршрут «/ items» отображает список элементов в сеансе.
Он работает, используя стандартный магазин сеансов ExpressJS. Это не работает с использованием connect-redis (req.session не определено)
Я предполагаю, что хранилище redis будет создано и уничтожено, когда приложение загружает/выгружает (или мне нужно, чтобы он работал за пределами узла/экспресс-приложение?)
Любые идеи?
Добавить Node.js тег в ваш вопрос, чтобы получить больше внимания/взгляды – thenewseattle