无法表达与Redis合作

时间:2014-09-01 16:33:43

标签: node.js express redis

我正在使用 Express 4.x 。我在这里声明 Redis

var app = require('express')()
, express = require('express')
, connect = require('connect')
, http = require('http').Server(app)
, path = require('path')
, request = require("request")
, io = require('socket.io')(http);


// Cookie and Session Reqs:
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
var sessionStore = new RedisStore();

我设置了会话

app.use(session({
    secret: "xxxxx",
    store: sessionStore,    
    key: 'sid',
    cookie: {secure: false, maxAge: 600000},
}));

我在我的路线

中使用了我的会话变量
app.get('/public/', function(req, res) {
    req.session.sessionAccessCode = "not set yet";
    res.redirect("index.html");
});

当我删除store: sessionStore行时,没有问题,我可以测试会话变量是否有效。但如果我拥有它,我会收到一个错误:

TypeError: Cannot set property 'sessionAccessCode' of undefined

为什么 Redis 无效?

1 个答案:

答案 0 :(得分:1)

你需要先以某种方式启动redis。根据您安装redis的方式,如果您通过软件包安装,可能就像启动redis服务一样简单。