2017-04-10 94 views
0

我设置我的会话变量为true,只要用户名和密码在我的发布函数中正确。但是当我无法在我的回复函数中检索我的会话时。当我安慰它时,它说未定义。设置后无法检索会话变量

var session = require('express-session') 
var userSchema = new Schema({ 
    name: String, 
    age: Number, 
    gender: String, 
}); 
var users = mongoose.model('users', userSchema) 
/* GET home page. */ 
router.post('/login', function(req, res, next) { 
var username = req.body.username; 
var password = req.body.password; 
if(username == "tina" && password == "123456") 
{ 
req.session.login = true; 
console.log("session1:" + req.session.login); 
setTimeout(function(){ res.redirect("/responses"); }, 3000); 
} 
else{ 
res.redirect("/loginerror"); 
} 

}); 


router.get('/responses', function(req, res, next) { 
//if(req.session.login==true){ 
console.log("session2:" + req.session.login); 
users.find({}, function(err,users) { 
    if (err) { 
    console.log(err); 
    throw err; 
} 
else{ 
console.log("session3:" + req.session.login); 
if(req.session.login){ 
console.log("111"); 
    res.render('responses', { title: 'responses',users:users }); 
} 
else{ 
res.redirect("/loginerror"); 
} 
    } 
}) 
//} 


}); 

router.get('/loginerror', function(req, res, next) { 
    res.render('loginerror', { title: 'loginerror' }); 

}); 

router.get('/', function(req, res, next) { 
    res.render('index', { title: '',users:users }); 

}); 

module.exports = router; 
+3

发布您的代码,请。 – Pengyy

+0

@Pengyy我已经发布了代码。 – dpatnaik

回答

1

您尚未正确设置您的快速会话。 只使用下面的行是不够的。

var session = require('express-session'); 

快速应用程序需要使用此会话。

var session = require('express-session') 

app.use(session({ 
    secret: 'keyboard cat', 
    resave: false, 
    saveUninitialized: true, 
    cookie: { secure: true } 
})) 

做好以上在app.js/server.js