logologo
Start
Handbuch
Entwickler
Plugins
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Start
Handbuch
Entwickler
Plugins
API
logologo

Schnellstart

Plugin-Entwicklung: Überblick
Erstes Plugin schreiben
Projektverzeichnisstruktur

Serverseitige Entwicklung

Überblick
Plugin
Collections (Datentabellen)
Datenbankoperationen
DataSourceManager
ResourceManager
ACL-Zugriffskontrolle
Middleware
Cache
Events
Request-Kontext
Migration (Update-Skripte)
Logger (Protokollierung)
I18n (Internationalisierung)
Command (Befehlszeile)
CronJobManager
Tests

Clientseitige Entwicklung

Überblick
Plugin
Kontext
Router
ACL-Zugriffskontrolle
DataSourceManager
Ressourcen
Requests
Stile & Themes
Logger (Protokollierung)
I18n (Internationalisierung)
Tests

Sonstiges

Plugin-Update-Leitfaden
Sprachenliste
Abhängigkeitsverwaltung
Build
Previous PagePlugin
Next PageDatenbankoperationen
KI-Übersetzungshinweis

Diese Dokumentation wurde automatisch von KI übersetzt.

#Sammlungen (Collections)

Bei der Entwicklung von NocoBase-Plugins ist die Sammlung (Collection) eines der zentralen Konzepte. Sie können die Struktur von Datentabellen in Ihren Plugins hinzufügen oder ändern, indem Sie Sammlungen definieren oder erweitern. Im Gegensatz zu Datentabellen, die über die Oberfläche der Datenquellenverwaltung erstellt werden, handelt es sich bei im Code definierten Sammlungen in der Regel um Metadatentabellen auf Systemebene, die nicht in der Liste der Datenquellenverwaltung erscheinen.

#Datentabellen definieren

Gemäß der konventionellen Verzeichnisstruktur sollten Sammlungsdateien im Verzeichnis ./src/server/collections abgelegt werden. Verwenden Sie defineCollection(), um neue Tabellen zu erstellen, und extendCollection(), um bestehende Tabellen zu erweitern.

import { defineCollection } from '@nocobase/database';

export default defineCollection({
  name: 'articles',
  title: 'Beispielartikel',
  fields: [
    { type: 'string', name: 'title', interface: 'input', uiSchema: { title: 'Titel', required: true } },
    { type: 'text', name: 'content', interface: 'textarea', uiSchema: { title: 'Inhalt' } },
    {
      type: 'belongsTo',
      name: 'author',
      target: 'users',
      foreignKey: 'authorId',
      interface: 'recordPicker',
      uiSchema: { title: 'Autor' },
    },
  ],
});

Im obigen Beispiel:

  • name: Der Tabellenname (eine Tabelle mit demselben Namen wird automatisch in der Datenbank generiert).
  • title: Der Anzeigename der Tabelle in der Benutzeroberfläche.
  • fields: Eine Sammlung von Feldern, wobei jedes Feld Attribute wie type, name usw. enthält.

Wenn Sie Felder hinzufügen oder Konfigurationen für Sammlungen anderer Plugins ändern müssen, können Sie extendCollection() verwenden:

import { extendCollection } from '@nocobase/database';

export default extendCollection({
  name: 'articles',
  fields: [
    {
      type: 'boolean',
      name: 'isPublished',
      defaultValue: false,
    },
  ],
});

Nach der Aktivierung des Plugins fügt das System das Feld isPublished automatisch der bestehenden articles-Tabelle hinzu.

TIP

Die konventionelle Verzeichnisstruktur wird geladen, bevor die load()-Methoden aller Plugins ausgeführt werden. Dadurch werden Abhängigkeitsprobleme vermieden, die durch nicht geladene Datentabellen entstehen könnten.

#Datenbankstruktur synchronisieren

Wenn ein Plugin zum ersten Mal aktiviert wird, synchronisiert das System automatisch die Sammlungs-Konfigurationen mit der Datenbankstruktur. Ist das Plugin bereits installiert und in Betrieb, müssen Sie nach dem Hinzufügen oder Ändern von Sammlungen den Upgrade-Befehl manuell ausführen:

yarn nocobase upgrade

Sollten während der Synchronisierung Ausnahmen oder inkonsistente Daten auftreten, können Sie die Tabellenstruktur durch eine Neuinstallation der Anwendung wiederherstellen:

yarn nocobase install -f

#Ressourcen automatisch generieren

Nachdem Sie eine Sammlung definiert haben, generiert das System automatisch eine entsprechende Ressource. Auf dieser Ressource können Sie dann direkt CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) über die API ausführen. Weitere Informationen finden Sie unter Ressourcenverwaltung.