Nestjsを学び、3日目のサービスとプロバイダを知る


Nestjs
1.サービスプロバイダとは?
ProviderはNestの基本概念です.ほとんどの基本的な「最近」カテゴリは、サービス、リポジトリ、ファクトリ、ヘルプなどのプロフェッショナルと見なすことができます.プロの殺し屋の主な考えは従属関係を注入できることだ.すなわち、オブジェクトは互いに異なる関係を作成することができ、ほとんどの接続オブジェクトインスタンスの機能は、最近のランタイムシステムに委任することができる.
[画像1]
上述したように、コントローラに必要な要素が機能的に存在する場合、コントローラは、必要に応じて주입と呼ばれる注入を行う.
ここでは、それぞれの要素がプロの殺し屋です.
私たちは以前、コントローラにサービスを注入しました.すなわち,サービスは大きな意味で提供者である.
サービスとは?
サービスはsw開発内の共通概念である.つまり、これはNestやjsで使われている概念だけではありません.
データの有効性を確認したり、データベース・アイテムを作成したりします.
@Injectable Decoratorは、アプリケーション全体で使用できるモジュールにカプセル化されています.
すなわち、Aコントローラがこのサービスを使用することは、Bコントローラがこのサービスを使用できないことを意味するものではなく、Bもこのサービスを使用することができ、他のコントローラも使用することができる.
コントローラでProviderを使用する方法
プロ選手は従属関係を注入する必要がある.
サービスはプロなので、スレーブステーションに注入する必要があります.私たちは以前DI(의존성)でサービスを注入していました.
@Controller('boards')
export class BoardsController {

    constructor(private boardService : BoardsService){}
}
そうです.
しかし、これは終わりではない.
Providerを「最近」フレームワークの依存性として使用するには、「最近」を登録して依存性を処理する必要があります.
つまり、Nestjsフレームワークが使用できるように、フレームワークに作成されたサービスを伝えなければなりません.
だからapp.module.tsに行きましょう.
import { Module } from '@nestjs/common';
import { BoardsModule } from './boards/boards.module';
import { BoardsService } from './boards/boards.service';
@Module({
  imports: [BoardsModule],
  providers: [BoardsService]
})
export class AppModule {}
次のようにコードを変更できます.
@Module Decoratorはproviderを使用して、作成したサービスが追加されたことを確認できます.
これは、Nestjsがサービスを処理し、コントローラが必要な場合に注入できることを意味する.