1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

NestJS初心者が基礎を学ぶ modules編

Posted at

はじめに

NestJSの各概念を少しづつ説明していきます。
一から学びたい人はまずこちらから

modules

  • 形式的には、@Module() デコレータを適用したクラスのこと。以下の要素から構成される
    • providers: Nest injector によりインスタンス化される Provider で、Module 内でシェアされる
    • controllers: Module で定義される Controller
    • imports: Module で使用する Provider をエクスポートしている他の Module
    • exports: Module からエクスポートされる Provider
  • Nest アプリケーションは、少なくとも一つの Module (これを Root module という) を必要とし、これと他のインポートされた Module の連鎖である application graph によって構成される
  • 特定の役割に応じて一つの Module が構成されるべきである
  • @Global() デコレータを適用した Module は、グローバルに利用可能となる
  • 動的に使用する Provider を切り替えることも可能

Module を作成する際は以下の通り

$ nest g module <name>

このコマンドにより、src//.module.ts というファイルが作成される。

Module の基本的な構造は以下のようになります:

import { Module } from "@nestjs/common";
import { CatsController } from "./cats.controller";
import { CatsService } from "./cats.service";

@Module({
  controllers: [CatsController], // Controller の登録
  providers: [CatsService], // Service の登録
  exports: [CatsService], // エクスポートする Provider の登録
})
export class CatsModule {}

Root module がこの Module を利用する場合は、次のようになります:

import { Module } from "@nestjs/common";
import { CatsModule } from "./cats/cats.module";

@Module({
  imports: [CatsModule],
})
export class AppModule {}

modulesは@Module()デコレータが付けられたクラスです。@Module()デコレータはNestがアプリケーション構造を整理するために使用するメタデータを提供します。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?