如何使用Node.js connect-memcached中间件

时间:2014-08-21 07:09:28

标签: node.js session memcached connect

有一个关于如何使用connect-memcached的简单示例。

var express      = require('express')
, session        = require('express-session')
, cookieParser   = require('cookie-parser')
, http           = require('http')
, app            = express()
, MemcachedStore = require('connect-memcached')(session);

app.use(cookieParser());
app.use(session({
      secret  : 'CatOnKeyboard'
    , key     : 'test'
    , proxy   : 'true'
    , store   : new MemcachedStore({
        hosts: ['127.0.0.1:11211']
    })
}));

app.get('/', function(req, res){
    if(req.session.views) {
        ++req.session.views;
    } else {
        req.session.views = 1;
    }
    res.send('Viewed <strong>' + req.session.views + '</strong> times.');
});

通过这种方式,我们可以使用Memcached来存储我们的会话。 但是在这个示例中,我怀疑Memcached如何在其中存储会话(没有代码运行Memcached)。 当我们调用req.session.views = 1;时,存储在Memcached中的值views是什么时候?还是根本没有存储?有人可以帮我解释一下吗?或者只是教我如何在这里使用Memcached设置和获取会话。

1 个答案:

答案 0 :(得分:0)

不,对于您对服务器执行的每次通话,都会在会话中保存。但要检查会话是否相同并显示正确的值,服务器需要在memcached工作时检查会话。 获取代码检查是否有会话视图,每次调用时增加1。