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

あなたapp.js/server.js上記のコードをしてください投稿してください。 – 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 } 
})) 

関連する問題