2016-07-30 5 views
0

私はビューエンジンとしてハンドルバーを使用しています。ルートのハンドルバー+パスポートj

:passport.js

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


passport.deserializeUser(function(id, done) { 
    connection.query("SELECT * FROM users WHERE id = ? ",[id], function(err, rows){ 
     done(err, rows[0]); 
    }); 
}); 


passport.use(
    'local-signup', 
    new LocalStrategy({ 

      usernameField : 'username', 
      passwordField : 'password', 
      passReqToCallback : true 
     }, 
     function(req, username, password, done) { 
      // find a user whose email is the same as the forms email 
      // we are checking to see if the user trying to login already exists 
      connection.query("SELECT * FROM users WHERE username = ?",[username], function(err, rows) { 
       if (err) 
        return done(err); 
       if (rows.length) { 
        return done(null, false, {message: 'That username is already taken'}); 

        } else { 

        var newUserMysql = { 
         username: username, 
         password: bcrypt.hashSync(password, null, null) // use the generateHash function in our user model 
        }; 

        var insertQuery = "INSERT INTO users (username, password) values (?,?)"; 

        connection.query(insertQuery,[newUserMysql.username, newUserMysql.password],function(err, rows) { 
         newUserMysql.id = rows.insertId; 

         return done(null, newUserMysql); 
        }); 
       } 
      }); 
     }) 
); 

については

app.get('/', function(req, res) { 
    if(req.user) {res.render('user'), {name:req.user.username, id:req.user.id}} 

    else 

    if(!req.user) {res.render('index')}; 

}); 

私は解決策を見つけようとしているが、それは動作しません。これを使用しようとすると、ハンドルバーには何も表示されません.ejsは<%= user.username%>のようなものを使用していますが、ハンドルバーには変換できません。

答えて

0
if(req.user) {res.render('user'), {name:req.user.username, id:req.user.id}} 

私は最終的にそれを理解しました、私のオブジェクト{}は、その内側のものではなく、内側のものではありませんでした。これは正しいコードです:

if(req.user) {res.render('user', {name:req.user.username, id:req.user.id})}