Skip to content

Express request.originalUrl

TIP

返回原始请求的 URL,且可以自由重写

Express
req.originalUrl

TIP

req.url 不是原生的 Express 属性,它继承自 Node 的 http 模块。

这个属性很像req.url;但是,它保留了原始请求 URL,允许您出于内部路由目的自由重写 req.url。例如,app.use() 的 "mounting" 特性将重写 req.url 以剥离挂载点。

Express
// GET /search?q=something
console.dir(req.originalUrl)
// => "/search?q=something"

req.originalUrl 在中间件和路由对象中都可用,并且是 req.baseUrl 和 req.url 的组合。

Express
// GET 'http://www.example.com/admin/new?sort=desc'
app.use('/admin', (req, res, next) => {
  console.dir(req.originalUrl) // '/admin/new?sort=desc'
  console.dir(req.baseUrl) // '/admin'
  console.dir(req.path) // '/new'
  next()
})