I'm still kinda confused on what exactly is the difference between flash, connect-flash and express-flash.
Installation:
flash
npm install flashexpress-flash :
npm install express-flashconnect-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?
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:
- flash is written by the Express team, making it an official middleware for Express.
 - 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.
- 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.
来源:https://stackoverflow.com/questions/47176945/difference-between-flash-connect-flash-and-express-flash