py-py’s blog

何か書くよ

Nest.jsを使っていた時のメモ書き

Nest.jsを使っていて、気づいた、分かった、整理できた点がいくつかあったのでメモ。

  • Repository, Model
  • Service, Provider
  • DI
Repository, Model

Modelはテーブル定義、RepositoryはModelを操作するものと考える

Service, Provider

昔、「ServiceProvider」、「Service」、「Provider」というクラスを作ってそれぞれに処理を書くという現場があって当時良く分からなかった。
(ServiceProviderはLaravelを利用していた)  

Nest.jsにおいて、ServiceとProviderは同じ、名称が違うだけ。ただしファイル名はserviceにする。
Serviceにはロジックを書く。

LaravelのServiceProviderはサービスコンテナにサービスを登録する役割を持つ。そのため、「Service」「Provider」とはまた違うもの。
詳細は以下のリンクを参考にする。

reffect.co.jp

DI

依存性の注入、と言われてあまりわからなかった。
あるクラス(Aクラス)を実装するとき、そのクラスのコンストラクタ、初期値に別クラス(Bクラス)を指定してそれをメンバとする.

例を挙げると
Controllerクラスを実装する際に、DIでServiceクラスを指定し、Controllerクラスの関数を作る際に利用する