【问题标题】:How to create one handler for several urls in Next.js?如何在 Next.js 中为多个 url 创建一个处理程序?
【发布时间】:2020-03-15 21:39:33
【问题描述】:

我在开始使用 Next.js 时遇到了一些麻烦

这是交易。我有多个过滤器,取决于它们我组成的 URL。所有这些 URL 都用于一页。 可以是这样的:

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

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

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

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

谢谢!

【问题讨论】:

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


    【解决方案1】:

    像这样使用动态路由:

    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

    希望对你有所帮助。

    【讨论】:

    • 感谢您的回答。我使用了动态路由,但是这几个 url 只有一页。是否可以一页处理所有网址?
    【解决方案2】:

    Next.js 9.5 中引入的新功能

    解决方案:Rewrites

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

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

    除了我知道一些通配符匹配会在默认路由中嵌套很深的路径,但我觉得在大多数用例中重写是更好的解决方案。

    【讨论】:

      【解决方案3】:

      使用 npm next-routes 以使用路径模式(正则表达式)将多个 url 绑定到页面

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-04
        • 2014-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多