ExpressJS路线中的RegEx
在ExpressJS中,如何使用RegEx在一条path中纠正以下内容?
app.get('/blog', blog.list); app.get('/blog/p/:page?', blog.list);
在这里使用RegExp的意义何在? Express模式更简单,但却与正则expression式一样强大:
app.get('/blog(?:/p/:page([0-9]+)?)?', blog.list);
此路线将匹配以下所有url:
-
/blog
-
/blog/
-
/blog/p
-
/blog/p/
-
/blog/p/123
在blog.list
控制器中, req.params.page
将包含页码,如果没有提供,它将被undefined
为undefined
。
似乎有可能有令人信服的理由,使这些单独的路线,但我不知道你在做什么与你的应用程序。
app.get(/^\/blog(?:\/p\/([0-9]+)?)?/, blog.list);
req.params [0]在路由/ blog / p / 20上应该是“20”,req.params为/ blog / p /或/ blog /,但两者都是function路由。