モジュール
概要
モジュールは@Module()デコレーターで注釈されたクラスです。@Module()デコレーターはアプリケーション構造を整理するメタデータを提供します。モジュールは関連する機能をカプセル化し、NestJSのモジュールパターンに従います。
モジュール構造
MBC CQRS Serverlessの一般的なモジュールには以下が含まれます:
import { Module } from '@nestjs/common';
import { CommandModule } from '@mbc-cqrs-serverless/core';
import { CatController } from './cat.controller';
import { CatService } from './cat.service';
import { CatDataSyncRdsHandler } from './handler/cat-rds.handler';
@Module({
imports: [
CommandModule.register({
tableName: 'cat',
dataSyncHandlers: [CatDataSyncRdsHandler],
}),
],
controllers: [CatController],
providers: [CatService],
exports: [CatService],
})
export class CatModule {}
モジュールコンポーネント
| コンポーネント | 説明 |
|---|---|
imports | このモジュールで使用するプロバイダーをエクスポートするインポート済みモジュールのリスト |
controllers | HTTPリクエストを処理するコントローラー |
providers | インジェクションに利用可能なサービスやその他のプロバイダー |
exports | このモジュールをインポートするモジュールで利用可能にすべきプロバイダー |
フレームワークモジュール
MBC CQRS Serverlessはすぐに使えるモジュールをいくつか提供しています:
コアモジュール
| モジュール | パッケージ | 用途 |
|---|---|---|
CommandModule | @mbc-cqrs-serverless/core | CQRSコマンド処理とデータ同期 |
SequenceModule | @mbc-cqrs-serverless/sequence | 連番ID生成 |
TenantModule | @mbc-cqrs-serverless/tenant | マルチテナント管理 |
機能モジュール
| モジュール | パッケージ | 用途 |
|---|---|---|
TaskModule | @mbc-cqrs-serverless/task | Step Functionsによる非同期タスク実行 |
MasterModule | @mbc-cqrs-serverless/master | マスターデータと設定の管理 |
ImportModule | @mbc-cqrs-serverless/import | CSV/APIデータインポート |
サポートモジュール
| モジュール | パッケージ | 用途 |
|---|---|---|
NotificationModule | @mbc-cqrs-serverless/core | SES経由のメール通知 |
SettingModule | @mbc-cqrs-serverless/ui-setting |