res.местные жители не работают в представлениях — не определено

#javascript #node.js #session #ejs

Вопрос:

нужна помощь. Мои местные жители…. не работают в представлениях. В app.js я получаю истинное, но в представлениях я получаю неопределенное. Есть идеи, как решить мою проблему?!

это мой фрагмент кода из app.js

 app.use(async function(req, res, next) {  const user = req.session.user;  const isAuth = req.session.isAuthenticated;   if (!user || !isAuth) {  return next();  }   const userDoc = await User.findOne({_id: user.id});  const isAdmin = userDoc.isAdmin;   res.locals.isAuth = isAuth;  console.log(res.locals.isAuth);  res.locals.isAdmin = isAdmin;  next(); });   app.use('/users', userRoutes); app.use('/', coinRoutes); app.use('/', marketRoutes); app.use('/', footerRoutes); app.use('/', holdingRoutes);  

это мой фрагмент кода из navbar.ejs

 lt;nav class="mdl-navigation mdl-layout--large-screen-only"gt;  lt;a class="mdl-navigation__link" href="/"gt;Top 250lt;/agt;  lt;a class="mdl-navigation__link" href="/topflop"gt;Top/Flop Coinslt;/agt;  lt;a class="mdl-navigation__link" href="/top"gt;Top gesuchte Coinslt;/agt;  lt;a class="mdl-navigation__link" href="/markets"gt;Börsenlt;/agt;  lt;a class="mdl-navigation__link" href="/holdings"  gt;BTC-Unternehmenlt;/a  gt;  lt;a class="mdl-navigation__link" href="/info"gt;Newslt;/agt;  lt;% if(locals.isAdmin) { %gt;  lt;a id='admin' class="mdl-navigation__link log" href="/users/admin"gt;Adminlt;/agt;  lt;% } %gt;  lt;% if (!locals.isAuth) { %gt;  lt;% console.log(locals.isAuth   'Hello') %gt;  lt;a id='sign' class="mdl-navigation__link" href="/users/signup"gt;Signuplt;/agt;  lt;a id='login' class="mdl-navigation__link" href="/users/login"gt;Loginlt;/agt;  lt;% } else { %gt;  lt;form id="logout-form" action="/users/logout" method="post"gt;  lt;button id="logout" type="submit"gt;Logoutlt;/buttongt;  lt;/formgt;  lt;% } %gt;   lt;/navgt;  

Ответ №1:

в представлении вам нужно вызвать его напрямую вот так

 lt;% if ( !isAdmin) { %gt;  ...  lt;% } %gt;   lt;% if ( !isAuth) { %gt;  ...  lt;% } %gt;  

Комментарии:

1. Спасибо, что ответили. Я попытался, но затем я получаю сообщение об ошибке «isAdmin не определен………»

2. убедитесь,что промежуточное программное обеспечение,использующее app.use(функция (req, res, next) {}), установлено перед app.use («/пользователи», маршруты пользователей); также оно не входит в оператор if