警告:connect.session() MemoryStore 不是为生产环境设计的,因为它会泄漏内存,并且不会扩展到单个进程

新手上路,请多包涵

大家好,这是我的代码:

 var express = require('express');
var session = require('express-session');

var app = express();
app.set('trust proxy', 1);

app.use(session({
secret: 'secret',
saveUninitialized: true,
resave: false,
maxAge: 1000 * 60 * 15,
cookie:{
    secure: true
       }
}));

此代码总是在我的日志中返回:

警告:connect.session() MemoryStore 不是为生产环境设计的,因为它会泄漏内存,并且不会扩展到单个进程。

我试着用谷歌搜索它,但我似乎不明白一些教程。对不起,我的英语不好。

原文由 Ginxxx 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 671
2 个回答

我希望这对和我有同样问题的人有所帮助。自己挖出来的。

 //-momery unleaked---------
app.set('trust proxy', 1);

app.use(session({
cookie:{
    secure: true,
    maxAge:60000
       },
store: new RedisStore(),
secret: 'secret',
saveUninitialized: true,
resave: false
}));

app.use(function(req,res,next){
if(!req.session){
    return next(new Error('Oh no')) //handle error
}
next() //otherwise continue
});

原文由 Ginxxx 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 cookie-session 而不是 express-session 为我解决了这个问题。

您将会话存储在客户端而不是带有 cookie 的服务器上。

简单地:

  1. 安装它 npm install cookie-session
  2. 改变

var session = require('express-session');

var session = require('cookie-session');

原文由 Geo Angelopoulos 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏