假设我在以下Express应用程序中请求HTTP端点GET /foobar/baz
,我如何 - 通过req
对象 - 获取用于匹配整个URL的原始模式(即/foo(bar)?/:id
):
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)
可以使用req.route.path
访问子路由模式,这样可以/:id
,但父路由模式/foo(bar)?
似乎无法获取。
答案 0 :(得分:2)
您可以使用mountpath
属性
app.mountpath
属性是子应用程序所在的路径模式 安装了。
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);