如何在Next.js中为多个URL创建一个处理程序?

时间:2019-11-20 08:28:59

标签: javascript reactjs express next.js server-side-rendering

开始使用Next.js遇到麻烦

这是交易。我有多个过滤器,取决于它们,我组成了URL。所有此URL的一页。 可能像这样:

  • /
  • /一个
  • /一个/两个
  • /一/二/三

此嵌套是必需的。我该如何创建一个处理程序来捕获任何这些URL?

我这样使用Express,但没有帮助。

server.get('/*', async (req, res, next) => {
    try {
      app.render(req, res, '/')
    } catch (e) {
      next(e)
    }
  })

谢谢!

3 个答案:

答案 0 :(得分:0)

使用这样的动态路由:

pages/[one]/[two]/[three].js

cf: 多个动态路由段的工作方式相同。

例如,pages/post/[pid]/[comment].js将匹配/post/1/a-comment。其查询对象为:{ pid: '1', comment: 'a-comment' }

https://nextjs.org/docs#dynamic-routing

希望有帮助。

答案 1 :(得分:0)

使用npm next-routes以便使用路径模式(regex)将多个网址绑定到页面

答案 2 :(得分:0)

Next.js 9.5中引入的新功能

解决方案:Rewrites

另请参阅:重定向和标题:

宣布评论:https://github.com/vercel/next.js/discussions/9081#discussioncomment-48301

除了我知道一些通配符匹配之外,这些通配符匹配将路径嵌套在默认路由的深处,但是我觉得在大多数情况下重写是更好的解决方案。