DokuVerstehen Sie das Modell

Routenführung

Nexy verfügt über zwei native Router. Sie können eine pro Funktion auswählen; Sie können in derselben Anwendung koexistieren.

Nicht sicher? Verwenden Sie dateibasiertes Routing. Es deckt Seiten und API-Endpunkte ohne Einrichtung ab. Fügen Sie den modularen Router hinzu, wenn ein Backend Controller, injizierte Dienste oder Wachen benötigt.

Sie bauen Benutzen
Seiten, Inhalte, eine Site mit einigen Endpunkten Dateibasiert
Eine große API mit Diensten, die auf allen Routen gemeinsam genutzt werden Modular
Beides: Seiten für Menschen, eine strukturierte API für Maschinen Dateibasiert und modular zusammen
Der dateibasierte Router auf einen Blick
src/routes/index.nexy/
src/routes/about.nexy/about
src/routes/blog/index.nexy/blog
src/routes/blog/[slug].nexy/blog/:slug
src/routes/(app)/dashboard.nexy/dashboard
src/routes/api/users.py/api/users(GET, POST, …)
Der modulare Router im Überblick
@Controller() class AppController/
@Controller("/about") class AboutController/about/
@Controller("/api/users") class UserController/api/users/(get, post, …)
@Module() class AppModulelists the controllers
useRouter = AppModule nexyconfig.pymounts the module
Router Quelle Aktiviert von
Dateibasiert (FBR) jede Datei unter src/routes/ Das Verzeichnis existiert
Modular Controller und Module useRouter = AppModule in nexyconfig.py

FBR wird immer dann gescannt, wenn src/routes/ vorhanden ist, auch wenn ein modularer Router montiert ist.

Zusammenleben und Prioritäten

Sie können FBR, Modular und benutzerdefinierte Integration kombinieren. Nexy registriert diese Routen in der Reihenfolge, in der sie entdeckt werden. Wenn zwei Router denselben URL-Pfad definieren, gewinnt der zuerst registrierte.

Hinweis: Nexy bietet derzeit keine Diagnose für URL-Kollisionen; Die erste Route, die einen Pfad beansprucht, überschattet einfach die anderen.

Dateibasiertes Routing

Eine Route ist eine Datei. Die URL ist der Pfad unter src/routes/, abzüglich der Erweiterung. Wie Next.js befindet sich ein Projekt in einem von zwei Modi, ausgewählt mit useCSR:

useCSR = False (Standard) useCSR = True
Seiten .nexy, .md, .mdx Dateien Ihres Client-Frameworks
Root-Layout layout.nexy layout.tsx (React)
Client-Komponenten erlaubt, als Inseln innerhalb von Seiten die Seiten selbst
API-Routen .py .py

Siehe Servermodus und Clientmodus.

Abschnitt Was es abdeckt
fbr/pages Seiten, dynamische Routen und Routengruppen
fbr/layouts layout.nexy, layout.tsx, layout.vue, layout.svelte
fbr/handlers .py Routenhandler, Validierung und Fehler
fbr/Abhängigkeiten dependencies.py und Wächter, geerbt vom Verzeichnis
fbr/middleware middleware.py, geerbt vom Verzeichnis
fbr/errors notfound.nexy, errors.nexy, JSON-Fehler
fbr/navigation Verlinkung, Client-Navigation, Hooks
fbr/realtime WebSocket Handler
fbr/Vererbung wie Layouts, Abhängigkeiten und Fehlerseiten erben

Modulares Routing

Controller, Module und Abhängigkeitsinjektion im Stil von NestJS. Siehe Modulares Routing und Nexy und NestJS.

Abschnitt Was es abdeckt
modular @Controller, @Module, Importe und Exporte
Modular/Abhängigkeitsinjektion @Injectable, Bereiche und der Container
modular/guards-and-metadata @UseGuard, @UseResponse und die OpenAPI-Metadaten

Ein Controller gibt eine .nexy-Ansicht mit useViews zurück und übergibt sie manuell an sein Layout: Es gibt kein layout.nexy, das vom Ordner angewendet wird.

Benutzerdefinierte Integration

Sie können auch einen vorhandenen FastAPI Router in Ihr Nexy-Projekt integrieren. Siehe Benutzerdefinierte Routing-Integration.

Nächste Schritte

Auf GitHub bearbeiten

Enter öffnet das Ergebnis, Esc schließt.