Flash message middleware for Connect.


stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
00Jun 1, 2015Dec 7, 2014Minified + gzip package size for @avaly/connect-flash in KB


Fork/Branch changes

  • The flash object is removed from the session if it is empty. This allows to use this module with the express-session module with the saveUninitialized setting set to false.
  • Published as npm package @avaly/connect-flash


The flash is a special area of the session used for storing messages. Messages are written to the flash and cleared after being displayed to the user. The flash is typically used in combination with redirects, ensuring that the message is available to the next page that is to be rendered.

This middleware was extracted from Express 2.x, after Express 3.x removed direct support for the flash. connect-flash brings this functionality back to Express 3.x, as well as any other middleware-compatible framework or application. +1 for radical reusability.


$ npm install --save @avaly/connect-flash


Express 3.x

Flash messages are stored in the session. First, setup sessions as usual by enabling cookieParser and session middleware. Then, use flash middleware provided by connect-flash.

var flash = require('connect-flash');
var app = express();

app.configure(function() {
  app.use(express.cookieParser('keyboard cat'));
  app.use(express.session({ cookie: { maxAge: 60000 }}));

With the flash middleware in place, all requests will have a req.flash() function that can be used for flash messages.

app.get('/flash', function(req, res){
  // Set a flash message by passing the key, followed by the value, to req.flash().
  req.flash('info', 'Flash is back!')

app.get('/', function(req, res){
  // Get an array of flash messages by passing the key to req.flash()
  res.render('index', { messages: req.flash('info') });


For an example using connect-flash in an Express 3.x app, refer to the express3 example.


$ npm install --dev
$ make test



The MIT License

Copyright (c) 2012-2013 Jared Hanson <http://jaredhanson.net/>

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.