ライフサイクルとフック
Frourio におけるライフサイクル
Frourio と frourio-express のどちらも、fastify に似た形式のフックを提供しています。
全体のライフサイクルは下図のようになっていて、onRequest
, preParsing
, preValidation
, preHandler
などのフックを定義できます。
Ref. Lifecycle - Fastify
フックの定義方法を探していますか?
フックの定義方法はルーティングページにあります。以下のリンクから defineController()
や defineHooks()
について参照してください。
オブジェクト ServerHooks
{
[(フックの名称)]: HooksHandler or HooksHandler[],
}
フックの名称を key とし、HooksHandler
または HooksHandler[]
を value とするオブジェクト。
有効なフックの名称:
onRequest
preParsing
preValidation
preHandler
関数 HooksHandler
- Fastify
- Express
引数の型
request
:FastifyRequest
&AdditinalRequest
reply
:FastifyReply
done
: function<TError extends Error = FastifyError>(err?: TError) => void
done
はライフサイクルを続行する関数です。
注意
async
/await
を使用しているときや Promise
を返しているときは done
コールバックを使用できません。このような状況で done コールバックを呼び出すと、ハンドラを重複して呼び出すなど、予期しない動作が発生する可能性があります。
ref. Hooks - Fastify
引数の型
req
:Request
&AdditinalRequest
res
:Response
next
: function(err?: any) => void
next
はライフサイクルを続行する関数です。(async
/await
を使用しているときやPromise
を返しているときも含みます。)