Node.js

req.flash() en express 3

A partir de la versión 3 de http://expressjs.com/ framework req.flash() fue quitado del core ya que estrictamente hablando, ésta funcionalidad no es “core”.

No pasa nada, seguimos teniendo los mensajes flash pero en un modulo aparte:

Para instalarlo:

npm install connect-flash

O bien lo agregas a tu proyecto expressjs dentro de las dependencias y lo actualizas con npm:

{
    "name": "application-name",
    "version": "0.0.1",
    "scripts": {
        "start": "node app"
    },
    "dependencies": {
        "express": "3.1.0",
        "connect-flash": "*"
    }
}
path/a/tu/app$: npm update

A partir de allí, su uso sigue siendo el mismo que en versiones anteriores:

Cargamos el modulo:

app.configure(function () {
    app.use(express.session());
    //flash(); SIEMPRE VA ENTRE express.session() Y app.router
    app.use(flash());
    app.use(app.router);
});

Y ya lo podemos usar. Por ejemplo para indicar a nuestro usuario que ha puesto mal sus datos de login:

app.post('/user/login', function(req, res){
  req.flash('error', 'Tu usuario o contraseña están mal!')
  res.redirect('/user/login');
});
app.get('/user/login', function(req, res){
 res.render('index', { messages: req.flash('info') });
});

Deja un comentario

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

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>