ExpressJS路线中的RegEx

JR *_*lia 2 javascript regex node.js express

在ExpressJS中,如何使用RegEx在一条路线中纠正以下内容?

app.get('/blog', blog.list);
app.get('/blog/p/:page?', blog.list);
Run Code Online (Sandbox Code Playgroud)

Leo*_*tny 6

在这里使用RegExp有什么意义?Express模式更简单,但几乎与正则表达式一样强大:

app.get('/blog(?:/p/:page([0-9]+)?)?', blog.list);
Run Code Online (Sandbox Code Playgroud)

此路由将匹配以下所有网址:

  • /blog
  • /blog/
  • /blog/p
  • /blog/p/
  • /blog/p/123

blog.list控制器req.params.page中将包含页码,或者undefined如果未提供页码.