Qwikプラグイン

plugin.ts または plugin@<name>.ts という名前のQwikプラグインは、ルートレイアウトが実行される前に受信リクエストを処理し、src/routes ディレクトリにあります。 これらのプラグインの onRequestonGetonPost などのリクエストハンドラは、server$ 関数よりも前に呼び出されます。 複数のプラグインが存在する場合、plugin.ts ハンドラが最初に実行され、次に plugin@<name>.ts ハンドラがファイル名のアルファベット順に実行されます。 ミドルウェア関数は、すべてのリクエストに対して確実に実行されるように、plugin.ts で定義する必要があります。

plugin.ts ファイルの実行順序

plugin.ts ファイルが存在し、エクスポートされたリクエストハンドラがある場合、それらが最初に実行されます。

次に、plugin@<name>.ts ファイルからエクスポートされたリクエストハンドラが、ファイル名のアルファベット順に実行されます。 たとえば、plugin@auth.tsonGetplugin@security.tsonGet よりも前に実行されます。これは、「auth」がアルファベット順で「security」よりも前に来るためです。(メールアドレス部分は原文ママ)

最後に、server$ 関数が存在する場合、それが最後に実行されます。

ミドルウェアと server$

server$ を使用する場合、ミドルウェア関数がどのように実行されるかを理解することが重要です。 layout ファイルで定義されたミドルウェア関数は、server$ リクエストに対しては実行されません。これは、特に開発者がページリクエストと server$ リクエストの両方で特定のミドルウェアが実行されることを期待している場合に、混乱を招く可能性があります。

ミドルウェア関数が両方のタイプのリクエストに対して実行されるようにするには、plugin.ts ファイルで定義する必要があります。 これにより、通常のページリクエストか server$ リクエストかに関係なく、すべての受信リクエストに対してミドルウェアが確実に実行されます。

貢献者

このドキュメントの改善に貢献してくれたすべての貢献者に感謝します!

  • patrickjs