每当我的帖子函数中的用户名和密码都正确时,我将会话变量设置为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;
答案 0 :(得分:1)
您尚未正确设置快速会话。 仅使用以下行是不够的。
var session = require('express-session');
需要使用Express应用程序来使用此会话。
var session = require('express-session')
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
cookie: { secure: true }
}))
在app.js / server.js
中执行以上操作