在ExpressJS中,如何使用RegEx在一条路线中纠正以下内容?
app.get('/blog', blog.list);
app.get('/blog/p/:page?', blog.list);
答案 0 :(得分:5)
在这里使用RegExp有什么意义? Express模式更简单,但几乎与正则表达式一样强大:
app.get('/blog(?:/p/:page([0-9]+)?)?', blog.list);
此路线将匹配以下所有网址:
/blog
/blog/
/blog/p
/blog/p/
/blog/p/123
在blog.list
控制器req.params.page
中将包含页码,如果未提供,则为undefined
。
答案 1 :(得分:0)
似乎可能有令人信服的理由来制作这些单独的路线,但我不确定你在使用你的应用程序做了什么。
app.get(/^\/blog(?:\/p\/([0-9]+)?)?/, blog.list);
req.params [0]在路线/ blog / p / 20上应为“20”,req.params为{blog / p /或/ blog /的null
,但两者都是功能性的路线。