Node.js 在Express中使用子路由器时获取完整路由器模式?
假设我在下面的Express应用程序中请求HTTP端点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
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);