DokumentasiPahami modelnya
Perutean
Nexy memiliki dua router asli. Anda dapat memilih satu per fitur; mereka dapat hidup berdampingan dalam aplikasi yang sama.
Tidak yakin? Gunakan perutean berbasis file. Ini mencakup halaman dan titik akhir API tanpa pengaturan. Tambahkan router modular ketika backend memerlukan pengontrol, layanan yang disuntikkan, atau penjaga.
| Anda sedang membangun | Gunakan |
|---|---|
| Halaman, konten, situs dengan beberapa titik akhir | Berbasis file |
| API besar dengan layanan yang dibagikan ke seluruh rute | Modular |
| Keduanya: halaman untuk manusia, API terstruktur untuk mesin | Berbasis file dan modular bersama-sama |
src/routes/index.nexy/src/routes/about.nexy/aboutsrc/routes/blog/index.nexy/blogsrc/routes/blog/[slug].nexy/blog/:slugsrc/routes/(app)/dashboard.nexy/dashboardsrc/routes/api/users.py/api/users(GET, POST, …)/@Controller("/about") class AboutController/about/@Controller("/api/users") class UserController/api/users/(get, post, …)lists the controllersuseRouter = AppModule nexyconfig.pymounts the module| Perute | Sumber | Diaktifkan oleh |
|---|---|---|
| Berbasis file (FBR) | setiap file di bawah src/routes/ |
direktori tersebut ada |
| Modular | pengontrol dan modul | useRouter = AppModule di nexyconfig.py |
FBR dipindai setiap kali src/routes/ ada, bahkan dengan router modular terpasang.
Hidup berdampingan dan prioritas
Anda dapat menggabungkan integrasi FBR, Modular, dan kustom. Nexy mendaftarkan rute-rute ini sesuai urutan penemuannya. Jika dua router menentukan jalur URL yang sama, router pertama yang terdaftar akan menang.
Catatan: Nexy saat ini tidak menyediakan diagnostik untuk tabrakan URL; rute pertama yang mengklaim suatu jalur hanya membayangi rute lainnya.
Perutean berbasis file
Rute adalah file. URL adalah jalurnya di bawah src/routes/, tanpa ekstensi. Seperti Next.js, sebuah proyek berada dalam salah satu dari dua mode, dipilih dengan useCSR:
useCSR = False (bawaan) |
useCSR = True |
|
|---|---|---|
| Halaman | .nexy, .md, .mdx |
file kerangka klien Anda |
| Tata letak akar | layout.nexy |
layout.tsx (React) |
| Komponen klien | diperbolehkan, sebagai pulau di dalam halaman | halaman itu sendiri |
| Rute API | .py |
.py |
Lihat Mode server dan mode klien.
| Bagian | Apa yang dicakupnya |
|---|---|
| fbr/halaman | halaman, rute dinamis dan grup rute |
| fbr/tata letak | layout.nexy, layout.tsx, layout.vue, layout.svelte |
| fbr/penangan | .py penangan rute, validasi dan kesalahan |
| fbr/dependensi | dependencies.py dan penjaga, diwarisi berdasarkan direktori |
| fbr/middleware | middleware.py, diwarisi berdasarkan direktori |
| fbr/kesalahan | notfound.nexy, errors.nexy, kesalahan JSON |
| fbr/navigasi | penautan, navigasi klien, kait |
| fbr/waktu nyata | WebSocket penangan |
| fbr/warisan | bagaimana tata letak, ketergantungan, dan halaman kesalahan diwarisi |
Perutean modular
Pengontrol, modul dan injeksi ketergantungan, dalam gaya NestJS. Lihat Perutean modular dan Nexy dan NestJS.
| Bagian | Apa yang dicakupnya |
|---|---|
| modular | @Controller, @Module, impor dan ekspor |
| modular/injeksi ketergantungan | @Injectable, cakupan dan wadahnya |
| modular/penjaga-dan-metadata | @UseGuard, @UseResponse dan OpenAPI metadata |
Pengontrol mengembalikan tampilan .nexy dengan useViews, dan meneruskannya ke tata letaknya dengan tangan: tidak ada layout.nexy yang diterapkan oleh folder.
Integrasi Kustom
Anda juga dapat mengintegrasikan router FastAPI yang ada ke dalam proyek Nexy Anda. Lihat Integrasi perutean khusus.
Langkah selanjutnya
- Perenderan
- Tampilan: apa yang ada di dalam file