Mengapakah perisian tengah Next.js dilaksanakan beberapa kali?
P粉448346289
P粉448346289 2024-01-04 12:43:02
0
1
418

Saya menggunakan fail npx create-next-app@latest --typescript 创建了一个新的 Next.js。安装后(版本为13.3.4),在不更改任何文件的情况下,我在src文件夹内添加了一个新的middleware.ts dan saya hanya meletakkan kod ini:

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

export function middleware(request: NextRequest) {
  console.log("request", request.nextUrl.pathname);
  return NextResponse.next();
}

// EDIT: By putting this block will get expected result.
export const config = {
  matcher: [
    /*
     * Match all request paths except for the ones starting with:
     * - api (API routes)
     * - _next/static (static files)
     * - _next/image (image optimization files)
     * - favicon.ico (favicon file)
     */
    '/((?!api|_next/static|_next/image|favicon.ico).*)',
  ],
};

Log konsol dipukul beberapa kali. Saya fikir ia sekali? Adakah saya perlu melakukan sebarang konfigurasi untuk pemasangan Next.js baharu ini?

Nota: Saya akan melaksanakan beberapa logik kuki dalam perisian tengah untuk pengesahan. Tangkapan skrin:

P粉448346289
P粉448346289

membalas semua(1)
P粉950128819

Ini adalah perkara biasa kerana 中间件berjalan secara lalai pada setiap permintaan, termasuk permintaan untuk mendapatkan sumber seperti JavaScript, CSS dan fail imej. Seperti yang anda boleh baca dalam doc:

Jika anda log objek request.nextUrl.pathname,您将看到它运行的不同路径。要让它仅对某些路径执行,您需要使用条件语句matcher seperti ini:

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

export function middleware(request: NextRequest) {
  console.log("request", JSON.stringify(request));
  return NextResponse.next();
}

// The above middleware would only run for the "/" path
export const config = {
  matcher: '/',
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!