Saltar al contenido

¿Cómo enviar mensajes flash en Express 4.0?

Te sugerimos que revises esta respuesta en un ambiente controlado antes de pasarlo a producción, saludos.

Solución:

Este Gist debería responder a su pregunta:

https://gist.github.com/raddeus/11061808

en el archivo de configuración de su aplicación:

app.use(flash());

Póngalo justo después de configurar su sesión y el analizador de cookies. Eso es realmente todo lo que deberías necesitar para usar flash.

Tu estas usando:

req.flash('signupMessage', anyValue);

antes de redirigir a /registrarse, ¿verdad?

Aquí hay un pequeño dato divertido que actualmente uso para un sitio personal (en mi archivo de aplicación principal):

app.use(function(req, res, next)
    res.locals.success_messages = req.flash('success_messages');
    res.locals.error_messages = req.flash('error_messages');
    next();
);

Ahora cada vista tendrá acceso a cualquier mensaje de error o éxito que muestre. Funciona bien para mí.

Una última cosa (esto es quisquilloso, pero puede que adquieras algo de conocimiento). Si cambias:

<% if (message.length > 0) { %>

para:

<% if (message) { %>

Funcionará de la misma manera, pero no fallará si el mensaje no está definido. Las cadenas indefinidas y vacías se consideran valores “falsos” en javascript.

EDITAR: Mi configuración de cookies/sesión/flash es la siguiente:

app.use(cookieParser('secretString'));
app.use(session(cookie:  maxAge: 60000 ));
app.use(flash());

Tal vez ayudaría ver el código de configuración de su aplicación. También tenga en cuenta que usar app.configure ya no es necesario en Express 4.

Edición final: https://gist.github.com/raddeus/11061808

Ese es un ejemplo de trabajo. Vaya a localhost:3000 después de ejecutar esa aplicación y debería ver ['it worked'] en tu pantalla

https://gist.github.com/brianmacarthur/a4e3e0093d368aa8e423

Yo también estaba inicialmente confundido por los mensajes flash en Express 4. La confusión para mí surgió en parte de la distinción entre el concepto de mensajería flash, un mensaje temporal disponible para una plantilla, y las diversas implementaciones de mensajería flash, que incluyen express-flashotros módulos y middleware personalizado.

Solo para ampliar la excelente respuesta de Thad Blankenship anterior, creé un Gist para el principiante que incluye dos enfoques para los mensajes flash: el express-flash módulo y middleware personalizado, renderizados en jade, ejs o handlebars.

El archivo Léame incluye detalles sobre el captador:req.flash(type)–y colocador–req.flash(type, message)–métodos expuestos por express-flash y en qué se diferencian de la explotación de los res.locals y req.session objetos expuestos por express-session en el middleware personalizado.

Para mostrar el mensaje flash, debe instalar el módulo flash en su proyecto usando cmd.

npm install express-session --save

npm install cookie-parser --save

npm install connect-flash --save

Ahora debe agregar código al archivo app.js para acceder a esos módulos. Agreguemos estos códigos.

var session = require('express-session');

var cookieParser = require('cookie-parser');

var flash = require('connect-flash');

var app = express();

app.use(cookieParser('secret'));

app.use(session(cookie:  maxAge: 60000 ));

app.use(flash());

Ahora generar mensaje flash

req.flash('success', 'Registration successfully');
res.locals.message = req.flash();

Para mostrar el mensaje flash en el archivo de vista, use el código

<% if(locals.message) %>
    
<%  %>

Aquí puedes ver las reseñas y valoraciones de los usuarios

Agradecemos que desees añadir valor a nuestro contenido informacional tributando tu veteranía en las crónicas.

¡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 *