0Day Forums
Warning: connect.session() MemoryStore is not designed for a production environment, as it will leak memory, and will not scale past a single process - Printable Version

+- 0Day Forums (https://zeroday.vip)
+-- Forum: Coding (https://zeroday.vip/Forum-Coding)
+--- Forum: NodeJs (https://zeroday.vip/Forum-NodeJs)
+--- Thread: Warning: connect.session() MemoryStore is not designed for a production environment, as it will leak memory, and will not scale past a single process (/Thread-Warning-connect-session-MemoryStore-is-not-designed-for-a-production-environment-as-it-will-leak-memory-and-will-not-sca)



Warning: connect.session() MemoryStore is not designed for a production environment, as it will leak memory, and will not scale past a single process - submissive935 - 07-21-2023

Good day guys here is my code :

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

this code always returns on my log a :
>Warning: connect.session() MemoryStore is not designed for a production environment, as it will leak memory, and will not scale past a single process.

i tried googling about it but i don't seems to understand some tutorials .
Sorry for my bad english.


RE: Warning: connect.session() MemoryStore is not designed for a production environment, as it will leak memory, and will not scale past a single process - abstemious345 - 07-21-2023

I hope this would help to someone who's struggling the same problem as mine .
Just dug it by myself .

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


RE: Warning: connect.session() MemoryStore is not designed for a production environment, as it will leak memory, and will not scale past a single process - restivo936 - 07-21-2023

It's all about storing sessions, you should add a storing system that store sessions into your database. This help your app to manage sessions.

For example, in mongodb you can use connect-mongo, you should found a store package and for other databases.

[To see links please register here]


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

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



RE: Warning: connect.session() MemoryStore is not designed for a production environment, as it will leak memory, and will not scale past a single process - prostitution242 - 07-21-2023

Using `cookie-session` instead of `express-session` solved this issue for me.

You store the session on the client and not on the server with cookies.

Simply:

1. Install it with `npm install cookie-session`
2. Change
> <s>`var session = require('express-session');`</s>
>
> to `var session = require('cookie-session');`