Node.js 在Express中使用子路由器时获取完整路由器模式?

Node.js 在Express中使用子路由器时获取完整路由器模式?,node.js,express,Node.js,Express,假设我在下面的Express应用程序中请求HTTP端点GET/foobar/baz,我如何通过req对象获取用于匹配整个URL的原始模式(即/foo(bar)?/:id): 可以使用req.route.path访问子路由模式,它提供了/:id,但是父路由模式/foo(bar)?似乎无法访问。您可以使用该属性 app.mountpath属性是子应用程序所在的路径模式 上马了 如果没有严重的黑客攻击,我无法访问sub变量。希望有某种方法可以通过req获得它:(嗯……我使用的是Express 4.13

假设我在下面的Express应用程序中请求HTTP端点
GET/foobar/baz
,我如何通过
req
对象获取用于匹配整个URL的原始模式(即
/foo(bar)?/:id
):

可以使用
req.route.path
访问子路由模式,它提供了
/:id
,但是父路由模式
/foo(bar)?
似乎无法访问。

您可以使用该属性

app.mountpath
属性是子应用程序所在的路径模式 上马了


如果没有严重的黑客攻击,我无法访问
sub
变量。希望有某种方法可以通过
req
获得它:(嗯……我使用的是Express 4.13,这里似乎没有定义
sub.mountpath
var app = express()
var sub = express.Router()

sub.get('/:id', function (req, res, next) {
   // if `/foobar/baz` is requested:
   console.log(req.url)         // '/baz'
   console.log(req.baseUrl)     // '/foobar'
   console.log(req.originalUrl) // '/foobar/baz'
   console.log(req.route.path)  // '/:id'
})

app.use('/foo(bar)?', sub)
var app = express()
var sub = express.Router()

sub.get('/:id', function (req, res, next) {
   // if `/foobar/baz` is requested:

    console.log( sub.mountpath ); // '/foo(bar)?'

    console.log(req.route.path)         // '/:id'

})

app.use('/foo(bar)?', sub);