Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

difference between flash, connect-flash and express-flash

I'm still kinda confused on what exactly is the difference between flash, connect-flash and express-flash.

Installation:

  • flashnpm install flash

  • express-flash : npm install express-flash

  • connect-flash :npm install connect-flash

Usage:

flash:

app.use(session()); // session middleware 
app.use(require('flash')());

app.use(function (req, res) {
  // flash a message 
  req.flash('info', 'hello!');
  next();
})

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 }}));
  app.use(flash());
});

express-flash It even request that the usage should set up the same way you would connect-flash:

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

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

Can someone please explain?

like image 707
antzshrek Avatar asked Nov 08 '17 10:11

antzshrek


People also ask

What is flash connect?

Connect-flash module for Node. js allows the developers to send a message whenever a user is redirecting to a specified web-page. For example, whenever, a user successfully logged in to his/her account, a message is flashed(displayed) indicating his/her success in the authentication.

What is Express flash used for?

Flash is an extension of connect-flash with the ability to define a flash message and render it without redirecting the request.

What is RES locals in Express?

The res. locals is an object that contains the local variables for the response which are scoped to the request only and therefore just available for the views rendered during that request or response cycle.


1 Answers

There really is no drastic difference between the three packages. They all accomplish the same thing in their own way. The difference between the three are:

  1. flash is written by the Express team, making it an official middleware for Express.
  2. connect-flash as stated from the README:

This middleware was extracted from Express 2.x

So in a sense this is similar to flash except a legacy version of it from Express 2.x days. However, the name suggests it was meant for the Connect framework, but usually any connect-* packages work fine with Express.

  1. express-flash is just a wrapper around connect-flash. You can see that in the source code here.

Out of all three, connect-flash seems to be the most used judging from npm stats.

like image 152
Francisco Mateo Avatar answered Oct 22 '22 17:10

Francisco Mateo