0

The code below is quite a normally snippet, but it's not working, session from request is undefined. Anyone who can give me a hint will be appreciated.

var express = require('express');
var session = require('express-session');
var redisStore = require('connect-redis')(session);

var app = express();
app.listen(3000);

app.use(session({
  store: new redisStore({
    host:'localhost',
    port:'8543'
  }),
  resave: false,
  saveUninitialized: true,
  secret: 'somesecrettoken'
}));

app.get('/', function (req, res) {
  if(req.session.isVisit) {
    req.session.isVisit++;
    res.send('<p>times to be here:' + req.session.isVisit + '</p>');
  } else {
    req.session.isVisit = 1;
    res.send('1st time to be here');
  }
});

2 Answers 2

1

A Redis client is required

var redis = require("redis"); // You can use any module to create redis client

app.use(session({
  store: new redisStore({
    client : redis.createClient(<your setting>)
    host:'localhost',
    port:'8543'
  }),
  resave: false,
  saveUninitialized: true,
  secret: 'somesecrettoken'
}));
Sign up to request clarification or add additional context in comments.

4 Comments

thanks for your reply trquoccuong, but createClient is undefined in redisStore
you need to call var redis = require("redis");
Thanks for your help trquoccuong, I found the problem, I haven't start redis server after installation. Well, Redis looks a bit of difficault, think connect-mongo is a better choice for me.. :)
redis faster than mongo :D
0

Please refer this link: https://www.npmjs.com/package/connect-redis

Pass the express-session store into connect-redis to create a RedisStore constructor.

var session = require('express-session');
var RedisStore = require('connect-redis')(session);

app.use(session({
    store: new RedisStore(options),
    secret: 'keyboard cat'
}));

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.