Nestjs公式ドキュメントモジュール
Modules
モジュールは@Modules()Decoratorを使用して起動できます.
@Module Decoratorは、メタデータを提供することによってアプリケーション構造を作成します.
各アプリケーションには少なくとも1つ(rootmodule)があります.
モジュールパッケージの使用が望ましい
既に存在します.
登録後、最後にするのはルートモジュールにモジュールを登録することです.
単例なので、モジュール間で簡単に共有できます
import { Module } from '@nestjs/common';
import { CatsController } from './cats.controller';
import { CatsService } from './cats.service';
@Module({
controllers: [CatsController],
providers: [CatsService],
exports: [CatsService]
})
export class CatsModule {}
モジュールエクスポートプロセスmodule re-exporting
@Module({
imports: [CommonModule],
exports: [CommonModule],
})
export class CoreModule {}
これにより、CommonModuleをインポートした直後にCommonModuleをエクスポートすることもできます.import { Module } from '@nestjs/common';
import { CatsController } from './cats.controller';
import { CatsService } from './cats.service';
@Module({
controllers: [CatsController],
providers: [CatsService],
})
export class CatsModule {
constructor(private catsService: CatsService) {}
}
モジュールでは、コンストラクション関数にproviderを書き込むこともできます.ただし、モジュール自体は、ループ参照を阻止するために、モジュールをプロバイダとして登録することはできません.
Angularは基本的にproviderはグローバル状態で使用できるが,Nestはパッケージ化に重点を置いているため,グローバル状態で使用するには@globalを加える必要がある.
この場合は1回しか使用できないため、通常root moduleにグローバルステータスを登録します.
Dybamic Module
カスタムモジュールを作成できます.プロバイダの動的登録を許可します.
import { Module, DynamicModule } from '@nestjs/common';
import { createDatabaseProviders } from './database.providers';
import { Connection } from './connection.provider';
@Module({
providers: [Connection],
})
export class DatabaseModule {
static forRoot(entities = [], options?): DynamicModule {
const providers = createDatabaseProviders(options, entities);
return {
global:false
module: DatabaseModule,
providers: providers,
exports: providers,
};
}
}
単純なダイナミックモジュールの例モジュール内で静的メソッドを使用してforRootを作成し、モジュール、プロバイダ、およびエクスポートに戻るメソッドで動的に作成します.
この場合のforRootメソッドはasync、sync
グローバル可用性の設定も可能
import { Module } from '@nestjs/common';
import { DatabaseModule } from './database/database.module';
import { User } from './users/entities/user.entity';
@Module({
imports: [DatabaseModule.forRoot([User])],
exports: [DatabaseModule],
})
export class AppModule {}
re-exportは同じ部分で実現できますダイナミックモジュールを再エクスポートする場合は、forRootのみをエクスポートできます.
ここです。
Reference
この問題について(Nestjs公式ドキュメントモジュール), 我々は、より多くの情報をここで見つけました https://velog.io/@presentsong/Nestjs-공식문서-Modulesテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol