NodeJS 如何在Express.js中获取完整的路由模式?

x4shl7ld  于 2023-11-17  发布在  Node.js
关注(0)|答案(1)|浏览(149)

一个简单的Express应用

const express = require('express')
const app = express()

app.get('/users/:userId', (req, res) => {
    console.log(req.orginalUrl) // /users/1
    console.log(req.route.path) // /users/:userId
    res.json({})
})

字符串
它给出了正确完整的路由模式req.route.path,但是如果我们使用路由器来抽象URI的第一部分,那么它就不再给出完整的路由模式了。

const express = require('express')
const app = express()

const users = express.Router()
    .get(':userId', (req, res) => {
        console.log(req.orginalUrl) // /users/1
        console.log(req.route.path) // /:userId
        res.json({})
    })

app.use('/users', users)


有没有办法在使用路由器时获得/users/:userId

编辑

似乎@opentelemetry/instrumentation-express已经使用某种猴子补丁完成了这一点。
Here is the code

jpfvwuh4

jpfvwuh41#

你只需要像这样连接baseUrl和path:

let fullPath = req.baseUrl + req.route.path;

字符串

相关问题