我只是尝试将定义为String的路由转换为定义为RegExp的路由。
app.get('/page/:page', handler);
这有效,但将其转换为RegExp不起作用,处理程序永远不会触发:
app.get(/page\/\:page/, handler);
我用几种不同的方式尝试过,似乎都没有用
app.get(/page\/\:page/, handler);
app.get(/page\/:page/, handler);
app.get(/page/:page/, handler); // error
app.get(new RegExp('/page/:page'), handler);
app.get(new RegExp('/page\/\:page/'), handler);
我可能做错了什么?
也无法正常工作
app.get(/\/page\/:page/, handler);
app.get(new RegExp('\/page\/:page'), handler);
我的网址类似于/page/xyz
,我可以将'xyz'
作为req.params.page
。{
答案 0 :(得分:3)
:var
- 类型语法仅适用于字符串。对于实际的RegExps,您必须使用正常捕获组(例如/^\/page\/([^/]+)/
)。然后,这些捕获在req.params
上以req.params[0]
,req.params[1]
等方式提供。