Comments (7)
Is it reasonable to just default to a cookie store for this when another store is unavailable?
(or you could just have it cache it in a temporary memory store, but that seems like a bad idea..)
from session.
naw. these sessions could be humongous
from session.
Is it reasonable to just default to a cookie store for this when another store is unavailable?
plus if it is unavailable, how would you get the data out of the store to put into the cookie? :)
from session.
I experienced undefined req.session every so often caused by a disconnected redis store (using ElastiCache).
Here's a workaround that recreates the session middleware with a new Redis connection when the old connection disconnects.
Not sure if it would make sense to attempt a reconnect in the module itself.
app.use((function(){
var sessionMiddleware;
var createMiddlware = _.throttle(function() {
var store = new RedisStore({ ... });
store.on('disconnect', createMiddlware);
sessionMiddleware = session({
store: store,
cookie: { maxAge: 60000 },
});
}, 2000);
createMiddlware();
return function(req, res, next) {
sessionMiddleware.apply(this, arguments);
};
})());
app.use(function(req, res, next) {
if (req.session) return next();
res.send(500, 'Servers are updating. Please check back soon.');
});
from session.
Not sure if it would make sense to attempt a reconnect in the module itself.
It's up to the core to reconnect; the reason this module gives undefined
is because you store explicitly told us to do so--a store does not have to do that and just auto-reconnect and you won't experience that, but it's up to the store to do so.
You'll need to report the issue here: https://github.com/visionmedia/connect-redis/issues
from session.
the choice of what to do when the store is unavailable is definitely the application's - based on the use case,
- one could wait for a while with timeout, if the store becomes auto-available again,
- one could return an error if the app critically session-sentitive,
- one could behave as if there was no session
but again, the choice is best left to the application, not the middleware.
I guess this can be closed.
from session.
This issue seems to be stale, was proposed for closing last year with no objections. Closing now.
from session.
Related Issues (20)
- When Run frontend and backend in diff domain it not working HOT 2
- Undefined session object with apollo v4 express and express-session HOT 1
- Regenerated session is re-saved even if not modified since save HOT 1
- Allow for sessions to be shared between subdomains. HOT 1
- Invalid argument type express-session "1.17.3" and redis "4.6.7", HOT 1
- Request session destroy does not always resolve before returning HOT 1
- TypeError: Cannot read properties of undefined (reading 'reload') HOT 4
- [FEATURE REQUEST] Session Async Methods
- `SESSION.DESTROY()` DOES NOT DELETE SESSION. HOT 7
- A `destroy`ed session is still `touch`ed HOT 1
- cookie options won't get set HOT 13
- [Feature Request] Support of phasing out third-party cookies HOT 16
- req.sessionStore.all with typescript bug? HOT 7
- Don't `Set-Cookie` for static/public files? HOT 2
- Issue HOT 1
- Can't set partitioned cookie even though I updated all of the package HOT 6
- 'sha1' hash algorithm used at index.js is unsafe HOT 3
- Any good ways to refresh database data with a session? HOT 4
- Get session object from `req.session` outside of request context HOT 3
- express session is failing because session is undefined HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from session.