2016-11-15 134 views
0

我想在用戶登錄時顯示用戶名(function 3)。最初,我只有function 1。我已將function 1更改爲function 2以顯示登錄用戶的用戶名。我不確定這是否是正確的方法,因爲我不知道是否需要參數resnext以及功能next()。任何想法?如何在NodeJS/ExpressJS /護照中顯示登錄用戶名?

我使用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

相關問題