Nextjs 中间件未被调用

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

我有一个与 NX 一起使用的 mono repo 项目。一切工作正常,但我尝试添加中间件,但它没有被捕获在请求中。 我尝试将它放在所有不同的地方,并且名称中也包含 _ ,但没有成功。 有谁知道这里可能出了什么问题? 这是我的项目和中间件分发的图像。 我正在使用 Nextjs 14.0.4

enter image description here

这是我的中间件的代码:

import { NextResponse } from 'next/server';
import { NextRequest } from 'next/server';

export default function middleware(request: NextRequest) {
  const pathname = request.nextUrl.pathname;
  console.log('MIDDELWAREEEE');
  const publicPaths = ['/login', '/register'];

  if (publicPaths.includes(pathname)) {
    return NextResponse.next();
  }

  const token = request.cookies.get('auth_token');
  console.log('token', token);
  if (!token) {
    return redirectToLogin(request);
  }

  if (!token.value) {
    return redirectToLogin(request);
  }
}

function redirectToLogin(req: NextRequest) {
  const url = req.nextUrl.clone();
  url.pathname = '/login';
  return NextResponse.redirect(url);
}
reactjs next.js middleware nx-monorepo
1个回答
0
投票

中间件文件必须与

pages
文件夹同级,也无需默认导出。

你可以查看这个提供的官方文档由nextjs提供

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