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

在这里好日子是我的代码:

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 } })); 

这段代码总是返回我的日志a:

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

我尝试了谷歌search,但我似乎并不了解一些教程。 对不起,我的英语不好。

我希望这能帮助一个和我一样挣扎的人。 只是自己挖。

 //-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 }); 

这完全是关于存储会话,你应该添加一个存储系统,将会话存储到数据库中。 这有助于您的应用程序pipe理会话。

例如,在mongodb中你可以使用connect-mongo,你应该find一个商店包和其他数据库。

https://www.npmjs.com/package/connect-mongo

const session = require('express-session'); const MongoStore = require('connect-mongo')(session);

app.use(session({secret:'foo',store:new MongoStore(options)}));