Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 观察nodejs中的会话创建销毁事件_Javascript_Node.js_Express Session - Fatal编程技术网

Javascript 观察nodejs中的会话创建销毁事件

Javascript 观察nodejs中的会话创建销毁事件,javascript,node.js,express-session,Javascript,Node.js,Express Session,我使用的是“快速会话”和“记忆存储”。我想记录会话创建和销毁活动。我的解决方案是,拍摄当前“sessionStorage”的快照,稍后将其与当前“sessionStorage”进行比较,并根据差异,报告创建的会话和销毁的活动 let sessionSnapshot; app.get('/', function (req, res, next) { let currentSnapshot = req.sessionStore; let difference = sessionSna

我使用的是“快速会话”和“记忆存储”。我想记录会话创建和销毁活动。我的解决方案是,拍摄当前“sessionStorage”的快照,稍后将其与当前“sessionStorage”进行比较,并根据差异,报告创建的会话和销毁的活动

let sessionSnapshot;
app.get('/',
function (req, res, next) {
    let currentSnapshot = req.sessionStore;
    let difference = sessionSnapshot.filter(x => !currentSnapshot.includes(x));
    // Report create/destroy activities based on difference.
});
是否有其他位置/回调可以跟踪会话创建和销毁事件?
我也在使用“passport”。

您可以对该功能进行修补

然后,您可以在应用程序中使用此修补内存存储

app.use(session({
    cookie: { maxAge: 86400000 },
    store: new MemoryStore({
      checkPeriod: 86400000 // prune expired entries every 24h
    }),
    resave: false,
    secret: 'keyboard cat'
}))
UPD:可能,以类似的方式修补MemoryStore.prototype.touch也会有用

“设置”不是捕获会话创建事件的好方法。它被多次调用。但是,在插入会话时,可以将其与唯一缓存进行比较,以查看其是否为新会话。谢谢你!
app.use(session({
    cookie: { maxAge: 86400000 },
    store: new MemoryStore({
      checkPeriod: 86400000 // prune expired entries every 24h
    }),
    resave: false,
    secret: 'keyboard cat'
}))