Repolode
fastify

fastify/fastify-nextjs

既存のFastifyサーバーでReactのサーバーサイドレンダリングによるNext.jsページの表示を可能にするFastifyプラグイン。

スター
557
フォーク
63
未解決の Issue
6
最終コミット
3 日前

これは何?

@fastify/nextjsは、既存のFastifyサーバーにNext.jsのページ表示機能を追加するFastifyプラグインです。Next.jsの内部WebサーバーをFastifyに置き換えるのではなく、Fastifyインスタンスに`next`ルートAPIを公開し、指定したルートでNext.jsページを表示します。

Next.jsの初期化を待つため、ルートは`after`コールバック内で宣言します。ページを直接表示したり、プラグイン登録時にカスタムのNext.jsオプションを渡したり、`reply.nextRender`または`reply.nextRenderError`を呼び出すカスタムハンドラーを記述したりできます。静的な`_next/*`アセットの配信はデフォルトで有効ですが、独自の前処理を行う場合は無効にできます。

また、このプラグインは@fastify/under-pressureと連携します。ReactのレンダリングはNode.jsのイベントループをブロックするため、サーバー負荷が高いときにエラーを返すことができます。さらに、ほかのFastifyプラグインが提供するリクエストスコープのオブジェクトをページと共有する方法や、開発モードで大規模なNext.jsプロジェクト向けにプラグインのタイムアウトを延長する方法も扱います。

主な機能

  • 01Fastifyに`next`ルートAPIを追加し、Next.jsページを表示できます。
  • 02カスタムのレンダリングハンドラーに対応し、`reply.nextRender`と`reply.nextRenderError`ヘルパーを利用できます。
  • 03`_next/*`アセットをデフォルトで配信し、必要に応じて無効にできます。
  • 04負荷に応じたサーキットブレーカー機能をオプションで利用できます。
  • 05ほかのFastifyプラグインのカスタムプロパティをリクエストに追加し、ページから利用できます。

ユースケース

  • 既存のFastify APIサービスに、サーバーサイドレンダリングされたReactページを追加する。
  • FastifyのルートとNext.jsのフロントエンドを、1つのNode.jsプロセスで提供する。
  • 負荷に応じてエラーを返し、Next.jsをレンダリングするFastifyサーバーを過負荷から保護する。

クイックスタート

  1. 1

    Next.js と React と一緒にプラグインをインストールする

    npm i @fastify/nextjs next react react-dom
  2. 2

    pages/hello.js にページファイルを作成する

  3. 3

    プラグインを登録し、after コールバック内で fastify.next('/hello') を呼び出してから、ポート 3000 で listen する

使う前に知っておきたいこと

  • Next.js はプラグインと一緒にインストールする必要があります。このプラグインは既存の Fastify サーバーに Next.js のレンダリングを追加するためのものであり、Next.js 独自の Web サーバーを置き換えるものではありません。
  • 大規模な Next.js プロジェクトでは、開発中に Fastify プラグインのデフォルトのタイムアウトである 10 秒を超えることがあり、その場合は pluginTimeout を長くする必要があります。

トピック

よくある質問

fastify-nextjs とは?
既存のFastifyサーバーでReactのサーバーサイドレンダリングによるNext.jsページの表示を可能にするFastifyプラグイン。 @fastify/nextjsは、既存のFastifyサーバーにNext.jsのページ表示機能を追加するFastifyプラグインです。Next.jsの内部WebサーバーをFastifyに置き換えるのではなく、Fastifyインスタンスに`next`ルートAPIを公開し、指定したルートでNext.jsページを表示します。
fastify-nextjs は無料で使えますか?ライセンスは?
fastify-nextjs は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
fastify-nextjs は今もメンテナンスされていますか?
活発にメンテナンス中。fastify-nextjs の最終コミットは 2026年11月4日 です。
fastify-nextjs は何に使えますか?
既存のFastify APIサービスに、サーバーサイドレンダリングされたReactページを追加する。 FastifyのルートとNext.jsのフロントエンドを、1つのNode.jsプロセスで提供する。 負荷に応じてエラーを返し、Next.jsをレンダリングするFastifyサーバーを過負荷から保護する。
fastify-nextjs のインストール方法は?
Next.js と React と一緒にプラグインをインストールする: npm i @fastify/nextjs next react react-dom pages/hello.js にページファイルを作成する プラグインを登録し、after コールバック内で fastify.next('/hello') を呼び出してから、ポート 3000 で listen する
fastify-nextjs はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/fastify/fastify-nextjs

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト