我有一個關於快速會話存儲內存的問題,並設置了reapInterval值。我有一個示例代碼,它將每5秒輸出一次存儲器的值。如果我現在設置5000的重獲間隔,它應該每隔5秒清理一次過期的會話?所以,我的例子是這樣的:快速會話存儲和reapInterval
/**
* Module dependencies.
*/
var express = require('express');
var app = module.exports = express.createServer();
var MemStore = require('express/node_modules/connect/lib/middleware/session/memory');
var store = new MemStore({reapInterval: 5000});
// Configuration
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use(express.session({secret: 'your secret here', store: store, cookie: {maxAge: 30000}}));
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
setInterval(function(){
console.log(new Date());
console.log(store);
}, 5000);
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.configure('production', function(){
app.use(express.errorHandler());
});
// Routes
app.get('/', function(req, res){
res.render('index', {
title: 'Express'
});
});
app.listen(3000);
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
而現在的問題是,如果我在30秒後重新訪問該網頁,我得到一個新的SID,但在MemoryStore的舊的會話仍然存在......它應該不是每5秒檢查一次並刪除?
Thx爲您的幫助!
爲什麼即使有這樣的煩惱呢?在生產中,你會使用connect-redis或connect-mongo來存儲會話。 :) – alessioalex
解決這個問題有什麼好運氣?我遇到了同樣的問題。 – mihai