IT-Q

全リクエストの前に共通処理を挟むファイルは、Next.js 16 では何という名前ですか。

proxy.ts です。プロジェクト直下に1つだけ置け、リクエストがルートに届く前に実行されます。15 以前の middleware.ts からの改名で、公式のアップグレード手順にも記載があります。

面接官が見ているのは🔴 16 での改名。知らないと参画先のコードで戸惑う。

よくある答えと、面談でどう見られるか

  • proxy.ts。15 以前は middleware.ts で、16 で改名された
    公式のコードモッドが自動で書き換えます。両方知っているのが実務的です。
  • middleware.ts
    15 以前ならそれで正しく、現場のコードもそうなっています。16 では proxy.ts です。
  • interceptor.ts
    そういう規約はありません。
  • proxy.ts。middleware は非推奨になり別物として残っている
    別物として残ってはいません。同じ役割のファイルが改名されただけです。

模範解答

proxy.ts です。プロジェクト直下(pages や app と同じ階層)に1つだけ置けます。リクエストがルートに届く前に実行されます。

Next.js 16 での改名で、15 以前は middleware.ts でした。公式のアップグレード手順にも「middleware.<拡張子> を proxy.<拡張子> に改名する」という項目があり、コードモッドが自動で書き換えます。非推奨になって別物が増えたわけではなく、名前が変わっただけです。

面談では両方知っていると答えるのが一番良いです。現場のコードは 15 以前のままであることも多いので、「16 で proxy.ts になったが、参画先が 15 なら middleware.ts のはず」と言えると強い。

置くのは軽い判定だけにします。対象を絞らなければ全リクエストが通るので、ここにDBへの問い合わせを入れると全ページが遅くなります。