flash、connect-flash 和 express-flash 之间的区别

difference between flash, connect-flash and express-flash

我仍然对 flash、connect-flash 和 express-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 它甚至要求使用与 connect-flash:[=16= 相同的方式设置]

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());

有人可以解释一下吗?

这三个包之间确实没有太大区别。他们都以自己的方式完成同样的事情。三者的区别是:

  1. flash 由 Express 团队编写,使其成为 Express 的官方中间件。
  2. connect-flashREADME 所述:

This middleware was extracted from Express 2.x

所以从某种意义上说,这类似于 flash,除了它是 Express 2.x 天的遗留版本。然而,顾名思义,它是为 Connect 框架设计的,但通常任何 connect-* 包都可以与 Express 一起正常工作。

  1. express-flash 只是 connect-flash 的包装器。你可以在源代码中看到 here.

在所有三个中,connect-flash 从 npm 统计数据来看似乎是最常用的。