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') });
});