在redis中查找键/值

时间:2014-07-30 15:16:28

标签: node.js session express redis

我编写了一个简单的node / express / redis应用程序,它在redis中存储自定义会话ID。有用。但是对于redis来说,我只能在redis中找到sessionID,而不是jsessionid

var sessionStore = new RedisStore({
    host: redisHost,
    port: redisPort,
    db: redisDB
});

app.use(session({
    name: 'jsessionid', // access using req.cookies['jsessionid']
    secret: 'keyboard cat',
    store: sessionStore
}));

app.get('/awesome', function(req, res) {
    if(req.session.lastPage) {
        res.write('Last page was: ' + req.session.lastPage + '. And session id was: ' + req.sessionID + '. And jsessionid is ' + req.cookies['jsessionid'] + '. ');
    }
    req.session.lastPage = '/awesome';
    res.end('Your Awesome.');
});

因此,当我执行http://localhost:3000/awesome并重新加载它时,它会按预期打印出以下内容:

“最后一页是:/太棒了。会话ID是:kOnhpfyFQlil76eVXIbIBJTUNU7GzhDG。并且jsessionid是s:kOnhpfyFQlil76eVXIbIBJTUNU7GzhDG.KF3B6TLxMl084VI2rvYw + hz4u / wQr5IL7n + // gnH9mQ。真棒。”

我可以通过以下方式在redis-cli中找到sessionID:

127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> keys *
1) "sess:kOnhpfyFQlil76eVXIbIBJTUNU7GzhDG"

但是我无法在redis中找到jsessionid。我认为它应该存在于某个地方。请帮忙。

1 个答案:

答案 0 :(得分:0)

name中间件的express-session选项只是cookie的名称。您可以通过在prefix配置中设置'sess:'选项(默认为RedisStore)来更改前缀。有关您可以设置的更多选项,请参阅here