如何在 NextJS 中间件中获取查询字符串参数

Posted

技术标签:

【中文标题】如何在 NextJS 中间件中获取查询字符串参数【英文标题】:How do I get query string params in NextJS middleware 【发布时间】:2022-01-13 06:50:21 【问题描述】:

我正在使用 NextJS 中间件,可以从请求中获取 nextUrl 对象,其中包括路径名等内容,但是如何从中间件中获取查询字符串参数?我可以看到它作为 href 返回的字符串的一部分返回,然后我可以自己解析它,但我想知道它是否在它自己的对象中返回?

例如

export const middleware = (request) => 
  const  nextUrl:  query   = request;
  ...
;

query 等于


  param1: 'foo',
  param2: 'bar',
  etc.

【问题讨论】:

【参考方案1】:

您可能只想从某个位置提取它:

const urlSearchParams = new URLSearchParams(window.location.search);
const params = Object.fromEntries(urlSearchParams.entries());

【讨论】:

【参考方案2】:

正如@j-cue 上面所说,但我还发现您可以从nextUrl 获得search

例如

export const middleware = (request) => 
  const  nextUrl:  search   = request;
  const urlSearchParams = new URLSearchParams(search);
  const params = Object.fromEntries(urlSearchParams.entries());
;

【讨论】:

以上是关于如何在 NextJS 中间件中获取查询字符串参数的主要内容,如果未能解决你的问题,请参考以下文章

NEXT JS - 如何删除查询参数?

NextJS + Apollo:如何在 getServerSideProps 内的 apolloClient.query 上获取多个查询?

Nextjs 集中授权

删除突变后不重新获取查询(Apollo Graphql & Nextjs)

如何在 nextjs 的 getInitialProps 无状态组件中访问路由器参数

如何在 NextJS 中使用 Prisma 创建后重新获取数据?