2017-04-10 99 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