Express App / Router作为中间件

时间:2015-05-01 13:38:31

标签: express

我正在浏览app.use()并找到以下内容

  

函数可以是中间件函数,一系列中间件函数,中间件函数数组或所有这些函数的组合。由于路由器和应用程序实现了中间件接口,因此您可以像使用任何其他中间件功能一样使用它们。

我无法理解在我的快速应用程序中我倾向于使用app / router作为我的中间件的哪种情况会对它产生什么影响呢?

更详细的解释

我理解expressJS中的中间件就像Java环境中的过滤器/ servlet。也就是说,只要有任何请求进入服务器,就会逐个调用中间件。我们来看下面的例子:

var middleWare = function(req, res){
  res.send('hello world');
};

app.get('/hello', middleWare);

现在,app / router如何适合作为中间件。

快速应用程序作为中间件:

var subApp = express();
subApp.get('/', function (req, res, next) {
  next();
})
app.use(subApp);

使用路由器作为中间件:

var router = express.Router();
router.get('/', function (req, res, next) {
  next();
})
app.use(router);

现在,我无法理解在我的快速应用程序中我倾向于将app / router用作中间件的哪种情况我的应用程序在这种情况下会如何表现,有什么影响?

1 个答案:

答案 0 :(得分:0)

子应用程序和路由器之间的主要区别在于后者继承了应用程序配置并创建了一个新的快速应用程序。

只有在需要两个完全独立的应用程序而没有设置继承时,才应使用子应用程序。

有关它的更多信息here