2016-11-15 3 views
0

Я хочу показать имя пользователя в случае, если пользователь выполнил вход (function 3). Первоначально у меня только function 1. Я изменил function 1 на function 2, чтобы отобразить имя пользователя вошедшего в систему пользователя. Я не уверен, что это правильный способ сделать это, потому что я не знаю, нужны ли мне параметры res и next и функция next(). Есть идеи?Как показать имя пользователя в NodeJS/ExpressJS/Passport?

Я использую NodeJS, ExpressJS и Passport

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