0

i'm quite new to node and i've been working through this issue for some hours now but am failing at finding a solution :/ Perhaps u can help me :)

I have exported my routes out of the app.'s into routes.js. There i am having a POST for a Login-process. When loged in, i want to pass the userid from a databank into the session for later use (e.g. socket io). How do i have to construct this? I have tried several setups but i don't seem to get it.

app.js

var cookieParser = require('cookie-parser');
var session = require('express-session');
var sessionStore = new session.MemoryStore();
app.use(cookieParser('lts session'));
app.use(session({ secret: 'lts session', cookie: { maxAge: 600000 }, store : sessionStore}));
var router = require('./modules/routes.js');
app.use(router);

routes.js

router.post('/', function(req, res) {
    ....
    req.session.name =  admins[id].name;
    req.session.userId = id;
    ...
};

Later on i control my session by logging sessionStore.

  • It might help future readers if you outline what "setups" you tried and how they do not solve your problem – Rangad Jun 26 '14 at 18:27
  • Have you looked at [express-session](https://github.com/expressjs/session)? – dylants Jun 26 '14 at 22:27
  • I am using express-session. My problem ist that those req.session vars aren't saved. Right now I am using app.post etc instead of router.post.... still no progress :/ – user3351388 Jun 27 '14 at 12:33

1 Answers1

0

If u manipulate your session-vars, then just use:

req.session.save()

This will save your session-manipulation. Example:

router.post('/', function(req, res) {
  ....
  req.session.name =  admins[id].name;
  req.session.userId = id;
  req.session.save()
  ...
};