Closed5
Fastifyの概念を理解する
アーキテクチャ
基本的にはExpressやKoaと同様にMiddleware(fastifyでは呼び方が色々ある)を外側から順に実行して一番内側まで来たらまた外側に戻っていくフローと思われる。
Decorators
FastifyInstance
や FastifyRequest
, FastifyReply
に任意の値や関数を追加する。
prisma-clientもdecoratorでFastifyInstanceにprisma
を追加している。
Plugins
decoratorやroutesなどをまとめてPluginという。
fastify.register(plugin, [options])
でどんどん機能を追加していく。デフォルトではregisterはスコープを作成し、追加した順にFastifyInstanceに反映される。registerで新しいscopeを作りたくないときは fastify-plugin を使う。つまりルートに追加されるということ?
pluginのインターフェイス
function (fastify, opts, done)
Hooks
routeごとに様々なhookを差し込むことができる。
これにより、handlerから余計なロジックを排除でき、ビジネスロジックに集中できるようになると思われる。
Routes
ここがFastifyの一番すごいところかもしれない。
ルーティングだけでなく、全てのhookやJSON SchemaによるValidationやSerializeを設定できる。
どうやってディレクトリやファイルを分割しようか迷う。
URLパスにprefixを設定する場合は、fastify.register
のoptionで指定する。
このスクラップは2021/10/26にクローズされました