Diese Dokumentation wurde automatisch von KI übersetzt.
Context
In NocoBase wird für jede Anfrage ein ctx-Objekt generiert. Dieses Objekt ist eine Instanz des Context. Der Context kapselt Anfrage- und Antwortinformationen und bietet gleichzeitig NocoBase-spezifische Funktionen wie Datenbankzugriff, Cache-Operationen, Berechtigungsverwaltung, Internationalisierung und Protokollierung.
Die Application von NocoBase basiert auf Koa, daher ist ctx im Wesentlichen ein Koa Context. NocoBase erweitert diesen jedoch um umfangreiche APIs, die es Entwicklern ermöglichen, Geschäftslogik bequem in Middleware und Actions zu verarbeiten. Jede Anfrage verfügt über ein unabhängiges ctx, was die Datenisolation und Sicherheit zwischen den Anfragen gewährleistet.
ctx.action
ctx.action bietet Zugriff auf die Action, die für die aktuelle Anfrage ausgeführt wird. Dazu gehören:
- ctx.action.params
- ctx.action.actionName
- ctx.action.resourceName
ctx.i18n & ctx.t()
Unterstützung für Internationalisierung (i18n).
ctx.i18nstellt Informationen zum Gebietsschema (Locale) bereit.ctx.t()wird verwendet, um Zeichenketten basierend auf der Sprache zu übersetzen.
ctx.db
ctx.db stellt eine Schnittstelle für den Datenbankzugriff bereit, über die Sie Modelle direkt bearbeiten und Abfragen ausführen können.
ctx.cache
ctx.cache bietet Cache-Operationen und unterstützt das Lesen und Schreiben in den Cache. Dies wird häufig verwendet, um den Datenzugriff zu beschleunigen oder temporäre Zustände zu speichern.
ctx.app
ctx.app ist die NocoBase-Anwendungsinstanz und ermöglicht den Zugriff auf globale Konfigurationen, Plugins und Dienste.
ctx.auth.user
ctx.auth.user ruft die Informationen des aktuell authentifizierten Benutzers ab und eignet sich für die Verwendung in Berechtigungsprüfungen oder der Geschäftslogik.
ctx.state.currentRoles
ctx.state wird verwendet, um Daten in der Middleware-Kette zu teilen.
ctx.logger
ctx.logger bietet Protokollierungsfunktionen und unterstützt die Ausgabe von Protokollen auf mehreren Ebenen.
ctx.permission & ctx.can()
ctx.permission wird für die Berechtigungsverwaltung verwendet, und ctx.can() prüft, ob der aktuelle Benutzer die Berechtigung hat, eine bestimmte Operation auszuführen.
Zusammenfassung
- Jede Anfrage entspricht einem unabhängigen
ctx-Objekt. ctxist eine Erweiterung des Koa Context, die NocoBase-Funktionalitäten integriert.- Zu den gängigen Eigenschaften gehören:
ctx.db,ctx.cache,ctx.auth,ctx.state,ctx.logger,ctx.can(),ctx.t()usw. - Die Verwendung von
ctxin Middleware und Actions ermöglicht eine bequeme Handhabung von Anfragen, Antworten, Berechtigungen, Protokollen und der Datenbank.

