Configurable flash messages for Express 3
JavaScript HTML
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


####📢 Warning: this package is very old. I don't recommend you use it.

Configurable flash messages for Express 3. Based on flashify by @bscarvell but with a different interface and some configuration options.

npm install flashify


After setting up your express sessions, just register the flasher middleware.

var express = require('express');

var flasher = require('flasher'); // Get flasher

var app = express();

// Setup express sessions.

app.use(flasher.middleware); // Register the middleware


In your routes you can then just go:

req.flash.error("This is an error."); // An error message
req.flash.error("This is another error"); // and another"This is an info message."); // An info message, not an error

The above flash messages would be made available to your templates via res.locals like so:

flashes : {
	error : ['This is an error', 'This is another error'],
	info : ['This is an info message']

When using the req methods your messages will be show in the following response cycle. If you would like to show the error messages directly you can use the same methods on the response object instead. For example:

res.flash.error("This is an error for this response cycle.");

You can also send multiple messages at once if you want. Just pass an array:

req.flash.error(["Lots of errors.", "Error", "Another Error", "You get the point - Error"]);

Configuration (Optional)

You can set up as many different type of flash messages as you'd like. Optionally you can also specify the namespace in which you would like to have save your flash messages (this applies to both the template and the session cookie)

	namespace : 'flashMessages', // The namespace where you want to have the flash messages (in your templates and the session cookie)
	types : ['error', 'info', 'customType'] // The types of messages you'd like.

When using custom types the name of your custom type becomes the method name. For example, with the above setup: