1.0.2 • Published 9 years ago

express-fm v1.0.2

Weekly downloads
1
License
MIT
Repository
github
Last release
9 years ago

#express-fm Flash message middleware for Express and Connect.

Flash messages are messages that are displayed once when browsing on a website, usually to inform the user of success or error of an operation.

express-fm allows to set flash messages with the function req.flash. With Express, flash messages are automatically available in locals variable of the template thanks to an overriding of the res.render function.

Installation

npm install express-fm

Usage

Initialization

var flash = require('express-fm');

app.use(session(options));
app.use(flash());

You can use many options:

app.use(flash({
	secure: true,
	wrapRender: true,
	localsKey: 'flash',
	sessionKey: 'flash'
}));

Options:

keytypedefaultdescription
secureBooleantrueIf security is disabled (false) and middleware's called a second time, it will update flash message's options.
wrapRenderBooleantrueIf set to true middleware will override res.renderfunction for automatically make available flash messages in locals variable of the template.
localsKeyString'flash'The key of flash messages in locals variable of the template.
sessionKeyString'flash'The key of flash messages in req.session.

Set flash messages

app.get(path, function (req, res) {
	// Basic
	req.flash('info', 'Information message.');
	// Message array
	req.flash('info', ['First message.', 'Second message.']);
	// Format
	req.flash('info', 'Information: %s.', info);
	
	res.redirect('/');
});

Get flash messages

If you use Express, flash messages are automatically available in locals variable of the template. With Jade template engine, you can display them like that:

if locals.flash
	each key in flash
		each msg in index
			li=msg

But you can also get flash messages manually:

app.get(path, function (req, res) {
	var msgs;
	// Get only flash messages with 'info' key
	msgs = req.flash('info'); 
	// Get all flash messages
	msgs = req.flash();

	// Send messages to the template
	res.render(template, {
		flash: msgs
	}, null, false);
});

If middleware has overrided res.render function, it has added him a parameters to disable the automatic sending of flash messages in the template.

Test

npm test

Release History

20/08/2015 1.0.2 Readme completion.
19/08/2015 1.0.1 res.render overriding.
18/08/2015 1.0.0 Initial release.