es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Las ubicaciones res.locals no funcionan en las vistas – indefinido.

Necesito ayuda. Mis res.locals no funcionan en las vistas. En app.js obtengo un valor verdadero pero en las vistas obtengo indefinido. ¿Alguna idea para resolver mi problema?

Este 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);

Este es mi fragmento de código de navbar.ejs:

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que podría faltar la variable “res” al acceder a “locals” en las vistas. Intenta cambiar:

    <% if(locals.isAdmin) { %>
    

    por

    <% if(res.locals.isAdmin) { %>
    

    y

    <% if (!locals.isAuth) { %>
        <% console.log(locals.isAuth + 'Hello') %>
    

    por

    <% if (!res.locals.isAuth) { %>
        <% console.log(res.locals.isAuth + 'Hello') %>
    

    Esto debería permitirte acceder a “res.locals” en tus vistas.

Comments are closed.