gpt4 book ai didi

node.js - 在中间件中获取路由定义

转载 作者:IT老高 更新时间:2023-10-28 23:02:11 25 4
gpt4 key购买 nike

有谁知道是否可以获取用于触发路由的路径?

例如,假设我有这个:

app.get('/user/:id', function(req, res) {});

使用以下简单的中间件

function(req, res, next) {
req.?
});

我希望能够在中间件中获取 /user/:id,这不是 req.url

最佳答案

你想要的是req.route.path

例如:

app.get('/user/:id?', function(req, res){
console.log(req.route);
});

// outputs something like

{ path: '/user/:id?',
method: 'get',
callbacks: [ [Function] ],
keys: [ { name: 'id', optional: true } ],
regexp: /^\/user(?:\/([^\/]+?))?\/?$/i,
params: [ id: '12' ] }

http://expressjs.com/api.html#req.route


编辑:

正如评论中所解释的,在中间件中获取 req.route 是困难的/hacky。路由器中间件是填充 req.route 对象的中间件,它可能比您正在开发的中间件级别更低。

这样,只有在 Express 本身执行之前,您连接到路由器中间件为您解析 req,才能获取 req.route

关于node.js - 在中间件中获取路由定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19460481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com