one-flash
A flash implementation for Express that goes away after the first navigation.
Usage
npm install one-flash --save
Backend
add it as middleware AFTER session() in your app.js
app.use(session());
app.use(require('one-flash'));
In routes (or any handler)
router.get('/flash', function(req, res) {
req.oneFlash('warning', 'hello redirect');
res.redirect('/');
});
router.get('/flashrender', function(req, res) {
req.oneFlash('hello render');
res.render('index', {
title: 'Index - TEST'
});
});
Frontend
(Nunjucks + bootstrap.js 3.x)
{% for message in flash %}
<div class="alert alert-{{ message.type if message.type else "info" }} alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
{{ message.message }}
</div>
{% endfor %}
API
oneFlash adds a property to locals called "flash", its value is an array of "flash" objects.
res.locals.flash = [
{
type: 'info',
message: 'hello flash',
}
];
Tests
The entire middleware is very small, and im not sure how to do automated test redirects without a complex Selenium setup. You should know in about two seconds if it doesnt work. Just copy/paste the router samples above and test it.