13

我仍然对 flash、connect-flash 和 express-flash 之间到底有什么区别感到困惑。

安装:

  • 闪光npm install flash

  • 快闪npm install express-flash

  • 连接闪存npm install connect-flash

用法:

闪光

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

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

连接闪存

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相同的方式设置:

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

有人可以解释一下吗?

4

1 回答 1

16

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

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

这个中间件是从 Express 2.x 中提取的

所以从某种意义上说,这与Flash类似,只是它是 Express 2.x 时代的旧版本。但是,顾名思义,它是为Connect框架设计的,但通常任何connect-*包都可以与 Express 配合使用。

  1. express-flash只是connect-flash的包装。您可以在此处的源代码中看到这一点。

从 npm stats 来看,在这三个中,connect-flash似乎是最常用的。

于 2017-11-08T16:16:49.453 回答