Next.js 项目中未调用中间件

问题描述 投票:0回答:1

我对 Next.js 非常陌生。我正在 Next.js 13 中构建一个项目。该项目的基本要点如下。客户端组件将数据发送到服务器组件,然后服务器组件从外部 API 获取数据,服务器组件从外部 URL 获取数据,对其进行一些逻辑处理,然后将数据发送到客户端组件进行显示。我正在修改中间件的概念,但由于某种奇怪的原因,我的中间件组件根本没有响应。当我输入“http://localhost:3000/test”时,出现 404 错误。我的文件结构。我的中间件函数非常简单,它只是返回一个 hello there json 对象。应用程序文件夹内的中间件也没有响应。它还具有与“test”文件夹内的代码相同的代码。我最初认为可能是我的浏览器有问题,所以我尝试了邮递员,我也在那里收到错误,并且没有收到 json 对象

next.js middleware
1个回答
0
投票

您的中间件拦截每个请求,您可能不希望它返回该 json - 它不像 API 端点。

您通常希望它返回所发送的请求,或者如果它未通过您想要的验证(即令牌无效或类似的情况),则将其重定向到其他地方

例如:

export function middleware(request: NextRequest) {
  return NextResponse.redirect(new URL('/home', request.url))
}

这会将请求重定向到/home。 NextJS 关于 Middlware 的文档非常好,可以在这里找到:https://nextjs.org/docs/app/building-your-application/routing/middleware

© www.soinside.com 2019 - 2024. All rights reserved.