小编l D*_*e l的帖子

如何使用 middleware.ts 文件在 Next.js 中使用多个中间件?

我正在开发一个 Next.js 项目,并尝试在我的应用程序中实现多个中间件。虽然我发现了使用该包在 Next.js 中使用单个中间件的示例next-connect,但我更喜欢在不依赖任何外部包的情况下实现此目的。

我有一个middleware.ts文件,我想在其中定义和使用多个中间件。这是我的文件中的代码片段middleware.ts

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

export function middleware(request: NextRequest) {

  const userId = request.cookies.get('userId')

  if (!userId) {
    return NextResponse.redirect(new URL('/auth/login', request.nextUrl.origin).href);
  }
  return NextResponse.next();
}

export const config = {
    matcher:'/profile/:path*',
};
Run Code Online (Sandbox Code Playgroud)

她是我尝试过的:

import { NextResponse, NextRequest } from "next/server";

export function profileMiddleware(request: NextRequest) {
  const userId = request.cookies.get("userId");

  if (!userId) {
    return NextResponse.redirect(
      new URL("/auth/login", request.nextUrl.origin).href
    );
  }
  return NextResponse.next();
}

export function authMiddleware(request: NextRequest) …
Run Code Online (Sandbox Code Playgroud)

javascript web-frontend reactjs next.js next.js13

27
推荐指数
1
解决办法
1万
查看次数

标签 统计

javascript ×1

next.js ×1

next.js13 ×1

reactjs ×1

web-frontend ×1