Skip to content

Instantly share code, notes, and snippets.

@LeeDDHH
Last active September 13, 2023 01:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LeeDDHH/cc37beed4b6079a341af9aa32c91f067 to your computer and use it in GitHub Desktop.
Save LeeDDHH/cc37beed4b6079a341af9aa32c91f067 to your computer and use it in GitHub Desktop.
nest.jsの基本的な概念

用語

要素 説明
モジュール アプリケーションの構造を整理するためのメタデータ
コントローラ HTTPリクエストを処理するコンポーネント
サービス ビジネスロジックを提供するコンポーネント
インポート 外部のモジュールを読み込む
シングルトン モジュール内のコンポーネントをアプリケーション全体で共有する

module

  • アプリケーションの構造を整理するためのメタデータ
    • アプリケーションの機能を分割して整理する
    • コードの重複を防ぐ
    • メンテナンス性を向上させる
  • コントローラ、サービス、インポートなどの要素で定義できる
  • デフォルトではシングルトン
    • モジュール内のコンポーネントは、アプリケーション全体で共有される
    • モジュール間でコンポーネントを共有したい場合、とくに意識する必要がない
  • @Moduleデコレータを使って作成する
    • モジュールの名前、依存関係のリスト、およびモジュールに含まれるコンポーネントのリストなどのパラメータが指定できる

ルートモジュール

  • アプリケーションのエンドポイント
  • アプリケーションのメインモジュールであり、すべてのモジュールをインポートする必要がある

provider

  • モジュール内で有効化するサービスを定義する

controller

  • モジュール内で有効化するコントローラーを定義する

import

  • 読み込む外部のモジュールを定義する

export

  • モジュールとして公開するサービスを定義する
  • serviceの公開時に @Injectable() を使う

service

  • Injectableのスコープが決められる
スコープ 説明
DEFAULT アプリケーション全体でシングルトンで管理される
REQUEST リクエストのたびに再生成され、破棄される
TRANSIENT ユーザごとに生成され、同じユーザに同じオブジェクトが維持される

デコレータ

参考

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment