logologo
スタート
マニュアル
開発
プラグイン
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
スタート
マニュアル
開発
プラグイン
API
logologo

クイックスタート

プラグイン開発概要
最初のプラグインを作成
プロジェクトディレクトリ構造

サーバーサイド開発

概要
プラグイン
コレクション
データベース操作
データソース管理
リソース管理
ACL権限制御
ミドルウェア
キャッシュ
イベント
リクエストコンテキスト
マイグレーション
ロガー
I18n 国際化
コマンド
定時タスク管理
テスト

クライアントサイド開発

概要
プラグイン
コンテキスト
ルーター
ACL権限制御
データソース管理
リソース
リクエスト
スタイルとテーマ
ロガー
I18n 国際化
テスト

その他

プラグインアップグレードガイド
言語一覧
依存関係の管理
ビルド
Previous Pageデータベース操作
Next Pageリソース管理
TIP

このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください

#DataSourceManager データソース管理

NocoBase は、複数のデータソースを管理するための DataSourceManager を提供しています。各 DataSource は、それぞれ独自の Database、ResourceManager、ACL インスタンスを持っており、開発者が複数のデータソースを柔軟に管理・拡張できるようになっています。

#基本概念

各 DataSource インスタンスには、以下のものが含まれています。

  • dataSource.collectionManager: コレクション(データテーブル)とフィールドの管理に使用されます。
  • dataSource.resourceManager: リソース関連の操作(作成、読み取り、更新、削除など)を処理します。
  • dataSource.acl: リソース操作のアクセス制御(ACL)です。

簡単にアクセスできるように、メインのデータソースに関連するメンバーのショートカットエイリアスが提供されています。

  • app.db は dataSourceManager.get('main').collectionManager.db と同等です。
  • app.acl は dataSourceManager.get('main').acl と同等です。
  • app.resourceManager は dataSourceManager.get('main').resourceManager と同等です。

#よく使うメソッド

#dataSourceManager.get(dataSourceKey)

このメソッドは、指定された DataSource インスタンスを返します。

const dataSource = dataSourceManager.get('main');

#dataSourceManager.use()

すべてのデータソースにミドルウェアを登録します。これは、すべてのデータソースの操作に影響を与えます。

dataSourceManager.use((ctx, next) => {
  console.log('This middleware applies to all data sources.');
  await next();
});

#dataSourceManager.beforeAddDataSource()

データソースがロードされる前に実行されます。モデルクラスやフィールドタイプの登録など、静的クラスの登録によく使用されます。

dataSourceManager.beforeAddDataSource((dataSource: DataSource) => {
  const collectionManager = dataSource.collectionManager;
  if (collectionManager instanceof SequelizeCollectionManager) {
    collectionManager.registerFieldTypes({
      belongsToArray: BelongsToArrayField, // カスタムフィールドタイプ
    });
  }
});

#dataSourceManager.afterAddDataSource()

データソースがロードされた後に実行されます。操作の登録やアクセス制御の設定などによく使用されます。

dataSourceManager.afterAddDataSource((dataSource) => {
  dataSource.resourceManager.registerActionHandler('downloadXlsxTemplate', downloadXlsxTemplate);
  dataSource.resourceManager.registerActionHandler('importXlsx', importXlsx);
  dataSource.acl.allow('*', 'downloadXlsxTemplate', 'loggedIn'); // アクセス権限を設定
});

#データソースの拡張

データソースの完全な拡張については、データソースの拡張の章を参照してください。