necesitas ayuda. Mis res.locals.... no funcionan en las vistas. En app.js obtengo un verdadero pero en las vistas no estoy definido. ¿Alguna idea para resolver mi problema?
ese es mi fragmento de código de 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);ese es mi fragmento de código de navbar.ejs
<nav class="mdl-navigation mdl-layout--large-screen-only"> <a class="mdl-navigation__link" href="/">Top 250</a> <a class="mdl-navigation__link" href="/topflop">Top/Flop Coins</a> <a class="mdl-navigation__link" href="/top">Top gesuchte Coins</a> <a class="mdl-navigation__link" href="/markets">Börsen</a> <a class="mdl-navigation__link" href="/holdings" >BTC-Unternehmen</a > <a class="mdl-navigation__link" href="/info">News</a> <% if(locals.isAdmin) { %> <a id='admin' class="mdl-navigation__link log" href="/users/admin">Admin</a> <% } %> <% if (!locals.isAuth) { %> <% console.log(locals.isAuth + 'Hello') %> <a id='sign' class="mdl-navigation__link" href="/users/signup">Signup</a> <a id='login' class="mdl-navigation__link" href="/users/login">Login</a> <% } else { %> <form id="logout-form" action="/users/logout" method="post"> <button id="logout" type="submit">Logout</button> </form> <% } %> </nav>en la vista necesitas llamarlo directamente así
<% if ( !isAdmin) { %> ... <% } %> <% if ( !isAuth) { %> ... <% } %>