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:
[code]npm install connect-flash[/code]
O bien lo agregas a tu proyecto expressjs dentro de las dependencias y lo actualizas con npm:
1 2 3 4 5 6 7 8 9 10 11 |
{ "name": "application-name", "version": "0.0.1", "scripts": { "start": "node app" }, "dependencies": { "express": "3.1.0", "connect-flash": "*" } } |
[code]path/a/tu/app$: npm update[/code]
A partir de allí, su uso sigue siendo el mismo que en versiones anteriores:
Cargamos el modulo:
1 2 3 4 5 6 |
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:
1 2 3 4 5 6 7 8 |
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') }); }); |