【问题标题】:Express App/Router as middlewareExpress App/Router 作为中间件
【发布时间】:2015-05-01 13:38:31
【问题描述】:

我正在通过app.use() 发现以下内容

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

我无法理解在我的 express 应用程序中我倾向于使用应用程序/路由器作为我的中间件的哪种情况以及它会产生什么影响?

更详细的解释

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

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

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

现在,应用程序/路由器如何适合作为中间件。

作为中间件的快速应用:

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

现在,我无法理解在我的 express 应用程序中我倾向于将应用程序/路由器用作中间件的情况以及我的应用程序在这种情况下的行为会如何,有什么影响?

【问题讨论】:

  • 你能解释更多吗?
  • 请查看已编辑的问题。

标签: express


【解决方案1】:

子应用程序和路由器的主要区别在于后者继承应用程序配置而创建新的快速应用程序不会。

只有当您想要两个完全分离的应用程序而不需要继承设置时,您才应该使用子应用程序。

更多信息here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    • 2019-01-13
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    相关资源
    最近更新 更多