In ExpressJS, how to right the following in one route using RegEx?
app.get('/blog', blog.list);
app.get('/blog/p/:page?', blog.list);
In ExpressJS, how to right the following in one route using RegEx?
app.get('/blog', blog.list);
app.get('/blog/p/:page?', blog.list);
在这里使用 RegExp 有什么意义?表达模式更简单,但几乎和正则表达式一样强大:
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
如果未提供页码。
似乎有令人信服的理由来制作这些单独的路线,但我不确定你在用你的应用程序做什么。
app.get(/^\/blog(?:\/p\/([0-9]+)?)?/, blog.list);
req.params[0] 在路由 /blog/p/20 处应为“20”,req.params 与null
/blog/p/ 或 /blog/ 相同,但两者都作为功能路由。