我正在开发一个 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)