首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用“express-session”调用“store”命令?

如何使用“express-session”调用“store”命令?
EN

Stack Overflow用户
提问于 2021-07-13 10:57:20
回答 1查看 25关注 0票数 0

我使用Node.js/Express和'express- session‘模块进行会话管理。我的设置如下:

代码语言:javascript
运行
复制
var session = require('express-session');
var MemoryStore = require('memorystore')(session)
const express = require('express');
const app = express();

app.use(session({
 cookie: { maxAge: 86400000 },
 store: new MemoryStore({
   checkPeriod: 86400000 // prune expired entries every 24h
 }),
 resave: false,
 saveUninitialized: false,
 unset: 'destroy',
 secret: process.env.COOKIE_SECRET
}))

我的问题是,我是否调用“simple...how”命令(例如".all“、".destroy”、".length“等)...?我至少尝试了以下几点:

代码语言:javascript
运行
复制
session.store.all(function(error, len) {console.log("EXECUTED MEMORYSTORE LIST: ");})
MemoryStore.all(function(error, len) {console.log("EXECUTED MEMORYSTORE LIST: ");})
store.all(function(error, len) {console.log("EXECUTED MEMORYSTORE LIST: ");})

我总是得到一个"not a ...Nothing“的错误抛出。我想要访问这些命令,以启用在存储中循环会话、根据需要删除以及其他杂项任务。

任何关于如何访问这些“存储命令”的建议都将不胜感激。我要提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-13 11:55:22

如果您希望访问该模块的MemoryStore接口,则只需将实例保存到您自己的变量中:

代码语言:javascript
运行
复制
const memoryStore = new MemoryStore({
   checkPeriod: 86400000 // prune expired entries every 24h
});

app.use(session({
 cookie: { maxAge: 86400000 },
 store: memoryStore,
 resave: false,
 saveUninitialized: false,
 unset: 'destroy',
 secret: process.env.COOKIE_SECRET
}));

现在,您可以访问memoryStore的实例,并且可以访问它拥有的任何方法。您可以在代码here中看到它提供了哪些方法。它的实现实际上只是服务于express-session store接口--它并不意味着是一个单独可访问的数据库,但您可以从express-session store接口调用这些方法。

请记住,使用会话存储可以更好地处理您所询问的任务,该会话存储是一个真实的数据库,并且具有真实的数据库接口。然后,您可以使用常规数据库接口来访问以前存储的会话数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68355963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档