在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
还是有另一种方法。
答案 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分钟。