I'm trying to use redis for sessions in my express app.
I do the following:
var express = require('express'); var RedisStore = require('connect-redis')(express); app.configure('development', function(){ app.use(express.session({ secret: "password", store: new RedisStore({ host: "127.0.0.1", port: "6379", db: "mydb" }) }));
Later on, in my app, if i do something like:
var whatever = req.session.someProperty;
I get:
Cannot read property 'someProperty' of undefined
This indicates that req.session is undefined (I can see this from a console.log entry in my config section)
I've definitely got redis running, and can see my app connects to it initially (using redis-cli monitor)
Sessions won't work unless you have these 3 in this order:
app.use(express.cookieParser()); app.use(express.session()); app.use(app.router);
I'm not sure if router is mandatory to use sessions, but it breaks them if it's placed before them.
Looks like you're missing:
app.use(express.cookieParser());
before your app.use(express.session(...));
call.
See here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With