#node.js #express #handlebars.js #passport.js
#node.js #экспресс #handlebars.js #passport.js
Вопрос:
app.use(passport.initialize());
app.use(passport.session());
app.use(function(req, res, next) {
res.locals.login = req.isAuthenticated();
res.locals.user = req.user;
console.log(res.locals.user);
next();
});
app.use('/', indexRouter);
Здесь выше приведен код, который я использовал для установки своего пользовательского значения в поле res.locals.user.
Консоль выдает мне: { _id: 5fc3e49c0bfce754c8f923c9, email: ‘myemailadres@hotmail.com ‘, имя: ‘Jarne’, пароль: ‘passwordhash……’, __ v: 0 }
В моих дескрипторах я сейчас пытаюсь использовать эту пользовательскую переменную.
{{#if login}}
welkom
{{user.name}}
TESTER
{{tester}}
Это не работает. Это остается пустым..
Я могу использовать {{user}}, но это вернет мне формат Json.
Как я могу получить доступ к таким полям, как имя, адрес электронной почты, … видел несколько примеров в EJS с user.name , пользователь._id но, похоже, это не работает в моих рулях.
Также пытался сделать это через маршрутизатор. но тот же результат с тестером (tester.name ничего не показывает).
router.get('/', function (req, res, next) {
res.render('index', {
title: '---- Dashboard---- HOME',
tester: req.user
});
});
Я также попытался установить res.locals.username = req.user.name
Но это привело к ошибке.
Ответ №1:
Я нашел следующее решение:
{{#each user}}
{{name}}
{{_id}}
{{email}}
{{/each}}
Похоже, мне нужно было перебрать пользовательский объект.