如何在快递会话

时间:2017-10-16 07:00:39

标签: javascript session express express-session

我有以下代码:

var session = require('express-session');
var sessionConfig = {
   secret: 'somesecretkey', 
   cookie: {secure: false}, 
   resave: false, 
   saveUninitialized: false, 
   store: new mongostore({ mongooseConnection: mongoose.connection })
}

router.get('/', function(req, res, next) {

  var abc = req.session.user;
  var trueOrFalse = isset(abc);

  console.log(trueOrFalse);
  req.session.user = 1;
  req.session.save();
});

function isset(var1){
  if( typeof var1 !== 'undefined' ) {
     return true;
}
  return false;
}

我的期望回复是第一次打印'false',然后刷新页面后,它将始终在以下时间打印'true'。但是,它始终打印'false',因为它没有保留值。

请帮忙。

1 个答案:

答案 0 :(得分:0)

我不确定,但似乎您没有将会话添加为中间件,以便所有传入的请求都通过此。您可以这样做(在主文件中通常是app.js):

var session = require('express-session');
app.use(session({
   secret: 'somesecretkey', 
   cookie: {secure: false}, 
   resave: false, 
   saveUninitialized: false, 
   store: new mongostore({ mongooseConnection: mongoose.connection })
}));

// Now here come your route handlers
app.use("/", routes);