2016-11-15 9 views
0

ユーザがログインした場合のユーザ名を表示したい(function 3)。当初、私はfunction 1しか持っていなかった。ログインしたユーザーのユーザー名を表示するためにfunction 1function 2に変更しました。私はパラメータresnextが必要かどうかわからないので、これが正しい方法であるかどうかはわかりません。next()です。何か案が?NodeJS/ExpressJS/Passportにログインしているユーザー名を表示する方法は?

私はNodeJSExpressJSPassport

1.

function isLoggedIn(req, res, next) { 
    if (req.isAuthenticated()) { 
    return next() 
    } else { 
    res.redirect('/login') 
    } 
} 

2.

function isLoggedIn(req, res, next) { 
    if (req.isAuthenticated()) { 
    return true 
    } 
    return false 
} 

3.

を使用しています
router.get('/', function(req, res) { 
    if (isLoggedIn) { 
    res.render('index', { 
     username: req.user.username 
    }) 
    } else { 
    res.render('index') 
    } 
}) 

答えて

2

ほとんどの場合、メソッドはisLoggedInを変数と呼んでいます。私は以下を修正しました。

function isLoggedIn(req, res, next) { 
    if (req.isAuthenticated()) { 
    return true; 
    } 

    return false; 
} 

router.get('/', function(req, res, next) { 
    if (isLoggedIn(req, res, next)) { 
    res.render('index', { 
     username: req.user.username 
    }); 
    } else { 
    res.render('index'); 
    } 
}); 

さらに、isLoggedInメソッドを次のようにリファクタリングすることもできます。

function isLoggedIn(req, res, next) { 
    return req.isAuthenticated(); 
} 
+0

私はパラメータを追加するのを忘れています。どうもありがとうございました! :) – Engo

関連する問題