Saltar al contenido

Express4. ¿Cuál es la diferencia entre app.locals, res.locals y req.app.locals?

Solución:

  • los app.locals object es un objeto JavaScript y sus propiedades son variables locales dentro de la aplicación.

    app.locals.title
    // => 'My App' 
    app.locals.email
    // => '[email protected]'
    

    Una vez establecido, el valor de app.locals las propiedades persisten durante toda la vida útil de la aplicación

  • En contraste con res.locals propiedades que son válidas solo durante la vigencia de la solicitud. Cuando maneja la ruta donde tiene un res objeto, no tendrá un objeto de aplicación allí y viceversa para app.locals.

  • Puede acceder a las variables locales en las plantillas representadas dentro de la aplicación. Esto es útil para proporcionar funciones de ayuda a las plantillas, así como datos a nivel de la aplicación. Los locales están disponibles en middleware a través de req.app.locals (ver req.app)

    app.locals.title="My App";
    app.locals.strftime = require('strftime');
    app.locals.email="[email protected]";
    

Una foto de Node.js In Action libro como se muestra a continuación, describa la diferencia de app.local y res.local

ingrese la descripción de la imagen aquí

De documentación expresa.

Aquí en resumen.

app.locals

los app.locals object es un objeto JavaScript y sus propiedades son variables locales dentro de la aplicación.

Esto significa que puede declarar una variable en su app.js con locals y acceda a él dentro de ese script o páselo al response object.

res.locals

Con esto, puede configurar o enviar variables a la vista / html del lado del cliente y solo está disponible en esa vista / html.

p.ej

app.get('/view', function(req, res) {
  res.locals.user = req.user;
});

Aquí el user La variable está disponible en su página html solicitando la view ruta.

req.app.locals

Los locales están disponibles en middleware a través de req.app.locals;

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *