メインコンテンツへスキップ
バージョン: 最新版 (v5.0.x)

ライフサイクル

ライフサイクル

Fastify の内部ライフサイクルのスキームに従っています。

各セクションの右側の分岐にはライフサイクルの次のフェーズがあり、左側の分岐には親がエラーをスローした場合に生成される対応するエラーコードがあります。(すべてのエラーは Fastify によって自動的に処理されます)。

Incoming Request

└─▶ Routing

└─▶ Instance Logger

4**/5** ◀─┴─▶ onRequest Hook

4**/5** ◀─┴─▶ preParsing Hook

4**/5** ◀─┴─▶ Parsing

4**/5** ◀─┴─▶ preValidation Hook

400 ◀─┴─▶ Validation

4**/5** ◀─┴─▶ preHandler Hook

4**/5** ◀─┴─▶ User Handler

└─▶ Reply

4**/5** ◀─┴─▶ preSerialization Hook

└─▶ onSend Hook

4**/5** ◀─┴─▶ Outgoing Response

└─▶ onResponse Hook

ユーザーハンドラーの前または実行中はいつでも、```reply.hijack()` を呼び出して Fastify が以下を実行しないようにできます。

  • すべての次のフックとユーザーハンドラーを実行します。
  • 自動的にレスポンスを送信します。

NB (*): reply.raw を使用してユーザーにレスポンスを送信する場合、onResponse フックは依然として実行されます。

レスポンスのライフサイクル

ユーザーがリクエストを処理すると、結果は次のようになります。

  • 非同期ハンドラーの場合: ペイロードを返します。
  • 非同期ハンドラーの場合: エラー をスローします。
  • 同期ハンドラーの場合: ペイロードを送信します。
  • 同期ハンドラーの場合: エラー インスタンスを送信します。

レスポンスがハイジャックされている場合、以下のステップをスキップします。それ以外の場合は、送信時に実行されるデータフローは次のとおりです。

                        ★ schema validation Error

└─▶ schemaErrorFormatter

reply sent ◀── JSON ─┴─ Error instance

│ ★ throw an Error
★ send or return │ │
│ │ │
│ ▼ │
reply sent ◀── JSON ─┴─ Error instance ──▶ setErrorHandler ◀─────┘

reply sent ◀── JSON ─┴─ Error instance ──▶ onError Hook

└─▶ reply sent

注: レスポンスが送信された は、JSON ペイロードが以下によってシリアル化されることを意味します。