express.js-单个行中多个路由的单个路由处理程序

express.js-单个行中多个路由的单个路由处理程序,第1张

express.js-单个行中多个路由的单个路由处理程序

我在寻找相同功能时遇到了这个问题。

@Jonathan Ong在上面的评论中提到,不建议将数组用于路径,但已在Express 4中对其进行了明确描述,并且它在Express
3.x中有效。这是尝试的示例:

app.get(    ['/test', '/alternative', '/barcus*', '/farcus/:farcus/', '/hoop(|la|lapoo|lul)/poo'],    function ( request, response ) {    });

request
对象内部开始,路径为
/hooplul/poo?bandle=froo&bandle=pee&bof=blarg

"route": {    "keys": [        { "optional": false,  "name": "farcus"        }    ],     "callbacks": [        null    ],     "params": [        null,         null,         "lul"    ],     "regexp": {},     "path": [        "/test",         "/alternative",         "/barcus*",         "/farcus/:farcus/",         "/hoop(|la|lapoo|lul)/poo"    ],     "method": "get"},

注意使用params会发生什么:知道所有可能路径中的捕获组和param,无论它们是否在当前请求中使用。

因此,可以很容易地通过数组堆叠多个路径,但是如果您希望从通过参数或捕获组使用的路径中拾取任何有用的东西,副作用可能是无法预料的。对于冗余/别名,它可能更有用,在这种情况下,它将很好地工作。

编辑2:这是一个比较受欢迎的答案。请记住,与大多数Node.js库一样,ExpressJS是可移动的盛宴。尽管上面的路由仍然可以工作(目前我正在使用它,这是一个非常方便的功能),但是我不能保证请求对象的输出(这肯定与我所描述的不同)。请仔细测试以确保获得所需的结果。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5010343.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-14

发表评论

登录后才能评论

评论列表(0条)

    保存