在快递服务器中定义Next.js动态路由

时间:2020-05-07 18:07:48

标签: javascript reactjs express next.js

在next.js项目中,我有一个动态页面,如下所示:

/pages/magazine/post/[id].js

id可以在页面中访问query,并且在本地一切正常。现在,我需要在快递服务器中注册页面的路径。我尝试过

server.get("/magazine/post/:id", (req, res) => {
    return app.render(req, res, "/magazine/category/:id", req.query);
});

server.get("/magazine/category/:id", (req, res) => {
    return app.render(req, res, "/magazine/category/" + req.query.id, req.query);
});

,但是它们都返回错误。我是否需要动态更改页面,仅从id读取query还是有另一种方法。

1 个答案:

答案 0 :(得分:0)

  • 好吧,您不应该使用pages前缀。 /pages/magazine/post/[id].js是错误的。
  • 也无需使用.js 扩展名。

但是您可以做/magazine/post/bla-bla。无需使用页面,因为默认情况下next.js将搜索/pages中匹配的目录。


import Link from "next/link";

<Link href="/magazine/post/bla-bla">
  <a>go to this page</a>
</Link>


如何在服务器上处理此路由是另一种情况。您确实必须共享您的服务器路由器代码,我们才能讨论。

我真的建议您在他们的网站上做一个快速的next.js教程。因为next.js中的路由非常简单。您应该在next.js文档上花费至少20分钟。