node.js coffeescript express

node.js - Express 3.0 req.flash?



coffeescript (5)

- EDITAR -

Escribí algunos middlware para hacer esto: https://npmjs.org/package/flashify

Entonces, desde el lanzamiento de Express 3.0, los cambios han eliminado req.flash ()

https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x (fuente)

Así que aquí está mi pregunta ahora. Han aconsejado usar los mensajes de solicitud de req.session en un local para mostrar un flash.

Entonces, para que una sesión sea accesible para la vista, debemos hacer lo siguiente:

nb: en coffee-script

app.locals.use (req,res) -> res.locals.session = req.session

¿Cómo accederíamos a los datos de sesión desde la vista y luego lo borramos? No podemos borrar el contenido de la sesión después de que se haya visualizado la vista, pero no podemos borrarla porque no llegará a la vista, así que estoy un poco perdido en cuanto a cómo se podría solucionar este problema.


Además de connect-flash y express-flash , también hay flash , que está hecho por el equipo expressjs (que considero un extra). Súper fácil de usar:

instalar:

npm i flash

app.js:

app.use(session()); // session middleware app.use(require(''flash'')()); app.use(function (req, res) { // flash a message req.flash(''info'', ''hello!''); next(); })

view.jade:

while message = flash.shift() // consume messages as jade reads them a.alert(class=''alert-'' + message.type) p= message.message

Observe cómo el código anterior los desplaza ; si solo lees la matriz, los mensajes flash siguen colgando en la sesión (lo cual es genial para los redireccionamientos).


Creo que simplemente movieron req.flash a req.session.messages


Desde el enlace de Tim arriba:

Este middleware se extrajo de Express 2.x, después de que Express 3.x eliminó el soporte directo para el flash. connect-flash devuelve esta funcionalidad a Express 3.x, así como a cualquier otro framework o aplicación compatible con middleware. +1 para la reutilización radical.

Express 2.x migrar a la página 3.x dice lo siguiente:

  • req.flash() (solo use sesiones: req.session.messages = [''foo''] o similar)

Instalar el middleware de connect-flash, requerirlo, luego

app.use(flash()) y tenga en cuenta que debe aparecer antes de la app.use(express.session...)


Puede usar el middleware connect-flash para agregar de nuevo la funcionalidad req.flash () a express 3.0.