快递中的应用路由器



目前两者之间存在差异

app.use(function(req,res,next){
});

router.use('/some_route', function(req,res,next){
});

。不同之处在于,app.use针对每个请求运行,而router.use仅针对匹配的路由运行。

我的问题是关于必须位于应用程序下方的路由器。 当然,应用程序内部有一些默认路由器。有没有办法访问该路由器...应用程序路由器?我以为这被弃用了?

其次,我真正正在寻找的是一种访问当前正在使用的路由器的方法。

例如

   app.use(function(req,res,next){
      var currentRouter = req.app._router // (?)
     });

    router.use(function(req,res,next){
         var currentRouter = req._router //(?)
    });

其中req._router等于路由器的同一路由器。当然使用调用。

在最新的 Express 代码中,默认应用路由器位于 app._router 中。

它是延迟创建的,这意味着在实际定义路由(使用 app.use()app.get() 或类似的东西)之前不会创建它。

这似乎不是公共财产,因此可能会发生变化。 当然,您可以使用根路径定义自己的路由器,并且仅使用自己的路由器,然后就不必访问或使用此非公共属性。

您是正确的,app.router已被弃用。 尝试访问它故意在 Express 代码中引发异常。

最新更新