機能このページを編集.md

ミドルウェアモード

@lazarv/react-serverの開発サーバや本番サーバをミドルウェアモードで実行することもできます。これにより、既存のサーバやフレームワークに@lazarv/react-serverを統合することが可能になります。ミドルウェアモードでは、@lazarv/react-serverはHTTPサーバを起動せず、既存のサーバ内で使用できるミドルウェア関数を提供します。

開発サーバを使用するには、@lazarv/react-server/devからreactServerをインポートし、エントリーポイントへのパスを渡す必要があります。このパスは、react-server CLIに渡すものと同じです。パスは作業ディレクトリから解決可能である必要があり、reactServerを呼び出すファイルからの相対パスではありません。

import { reactServer } from '@lazarv/react-server/dev'; const server = reactServer("./src/App.tsx"); app.use("/react-server", async (req, res, next) => { const { middlewares } = await server; middlewares(req, res, next); });

本番環境では、インポート元を@lazarv/react-server/nodeに変更し、reactServer関数にoriginオプションを渡すだけです。

import { reactServer } from '@lazarv/react-server/node'; const server = reactServer({ origin: 'http://localhost:3000', }); app.use("/react-server", async (req, res, next) => { const { middlewares } = await server; middlewares(req, res, next); });

注意: reactServer関数は、middlewares関数を含むオブジェクトを解決するPromiseを返します。middlewares関数を使用する前に、このPromiseをawaitする必要があります。

@lazarv/react-serverのミドルウェアをサーバに追加する際、通常はパスを指定します。このパスがルートパスでない場合、アプリのベースURLを定義する必要があります。これはサーバがアセットのパスを正しく解決するために必要です。ベースURLを定義するには、react-server.config.jsonファイルにbaseオプションを追加します。

{ "base": "/react-server/" }