Javascript ExpressJS路由中的正则表达式

Javascript ExpressJS路由中的正则表达式,javascript,regex,node.js,express,Javascript,Regex,Node.js,Express,在ExpressJS中,如何使用正则表达式在一个路由中更正以下内容 app.get('/blog', blog.list); app.get('/blog/p/:page?', blog.list); 在这里使用RegExp有什么意义?Express模式更简单,但几乎与正则表达式一样强大: app.get('/blog(?:/p/:page([0-9]+)?)?', blog.list); 此路由将匹配以下所有URL: /blog /blog/ /blog/p /blog/p/ /blog

在ExpressJS中,如何使用正则表达式在一个路由中更正以下内容

app.get('/blog', blog.list);
app.get('/blog/p/:page?', blog.list);

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

app.get('/blog(?:/p/:page([0-9]+)?)?', blog.list);
此路由将匹配以下所有URL:

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

blog.list
controller
req.params.page
中,如果未提供,则将包含页码或
未定义的

看起来可能有令人信服的原因来创建这些单独的路由,但我不确定您的应用程序在做什么

app.get(/^\/blog(?:\/p\/([0-9]+)?)?/, blog.list);
路由/blog/p/20处的请求参数[0]应为“20”,其中/blog/p/或/blog/的请求参数为
null