2016-06-30 6 views
0

申し訳ありませんが、私は英語が話せません。 LOGIN = => welcome.ejs => OKハローのuser_id < =それは成功だときNodejs/expressとejs:rendering

私は

にしようとします!

LOGIN = X => welcome.ejs =>ログインリンク< =失敗。エラー

エラーメッセージは次のようになります。そうでない理由を私は知らない未定義

のプロパティ「ID」を読み込めません。 問題を解決するにはどうすればよいですか?

welcome.ejs

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="UTF-8"> 
    <title>welcome</title> 
</head> 
<body> 
<h1>welcome</h1> 
<% if (user.id) { %> 
<p><%= user.id %> hello!</p> 
<% } else { %> 
<p><a href="/login">LOGIN</a></p> 
<% } %> 
</body> 
</html> 

index.js

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

passport.serializeUser(function(user, done) { 
    done(null, user.id); 
}); 

passport.deserializeUser(function(id, done) { 
    var uid = id; 
    pool.getConnection(function(err, connection) { 
    connection.query('select * from member where id=?', [uid], function(err, rows) { 
     connection.release(); 
     var user = rows[0]; 
     if(user.id === id) { 
      done(err, user); 
     } 
    }); 
    }); 
}); 

passport.use(new LocalStrategy(
    function(username, password, done) { 
    var uid = username, 
      upw = password; 
    pool.getConnection(function(err, connection) { 
     connection.query('select * from member where id=?', [uid], function(err, rows) { 
      connection.release(); 
      var user = rows[0]; 
      if(uid === user.id && upw === user.pass) { 
       console.log('LocalStrategy', user); 
       return done(null, user); 
      } else { 
       return done(null, false); 
      } 
     }); 
     }); 
    } 
)); 

router.post('/login', 
    passport.authenticate('local', { successRedirect: '/welcome', 
           failureRedirect: '/login', 
           failureFlash: false }) 
); 

// here is problem 
router.get('/welcome', function(req, res, next) { 
    console.log('welcome user', req.user); 
    console.log('welcome user.id : ', req.user.id); 

    var obj = {user: req.user}; 
    res.render('welcome', obj); 
}); 
+0

どのような目的で 'connection.release'を前に置くのか不明です –

答えて

0

変更ウェルカムファイルとして:

<% if (user) { %> 

の代わり

<% if (user.id) { %> 
関連する問題