在ExpressJS中,如何使用RegEx在一条路由中纠正以下问题?
app.get('/blog', blog.list);
app.get('/blog/p/:page?', blog.list);
发布于 2013-07-23 11:17:15
在这里使用RegExp有什么意义?Express模式更简单,但几乎和正则表达式一样强大:
app.get('/blog(?:/p/:page([0-9]+)?)?', blog.list);
此路由将匹配以下所有urls:
/blog
/blog/
/blog/p
/blog/p/
/blog/p/123
在blog.list
控制器中,req.params.page
将包含页码,如果未提供,则为undefined
。
发布于 2013-07-23 12:05:06
看起来可能有令人信服的理由来制定这些独立的路线,但我不确定你的应用程序在做什么。
app.get(/^\/blog(?:\/p\/([0-9]+)?)?/, blog.list);
req.params在路由/blog/p/20处应该是"20“,req.params作为/blog/p/或/blog/的null
,但两者都作为功能路由。
https://stackoverflow.com/questions/17807825
复制相似问题