使用 Express 服务器将多个参数传递给 Next.js 自定义 URL

Passing Multiple Parameters to Next.js Custom URL using Express server

我按照 Next.js 中的这个例子来了解如何 create Server Side Support for Clean URLs 但是这个例子只支持传递一个参数

一切正常,我还在 github 上找到了关于如何 add multiple parameters 到 Next.js 的路线。

server.get('/question/:id/:subject', (req, res) => {
  const actualPage = '/question'
  const mergedQuery = Object.assign({}, req.query, req.params)
app.render(req, res, actualPage, mergedQuery)})

组件中的 Link 看起来像这样

 <Link as={`/question?id=${questionId}&subject=${subject}`} href={`/question?id=${questionId}&subject=${subject}`} ><a>{question}</a></Link>

这也很好用。 我的挑战是,当我尝试屏蔽 url 时,如下所示,当我刷新页面时,我得到了 404 页面。

server.get('/q/:id/:subject', (req, res) => {
  const actualPage = '/question'
  const mergedQuery = Object.assign({}, req.query, req.params)
app.render(req, res, actualPage, mergedQuery)})

Link 组件

 <Link as={`/q?id=${questionId}&subject=${subject}`} href={`/question?id=${questionId}&subject=${subject}`} ><a>{question}</a></Link>

在 google 上辛苦工作并研究代码数小时后,此修复允许我将多个参数传递给 Next.js url 并且页面刷新应用程序仍然可以正确加载。

<Link as={`/q/${questionId}/${subject}`} href={`/question?id=${questionId}&subject=${subject}`} ><a>{question}</a></Link>