Шаблон руля пользователя паспорта

#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}}
 

Похоже, мне нужно было перебрать пользовательский объект.