Context
Di NocoBase, setiap request akan menghasilkan objek ctx, yang merupakan instance dari Context. Context mengenkapsulasi informasi request dan response, sekaligus menyediakan fungsionalitas khusus NocoBase — seperti akses database, operasi cache, manajemen hak akses, internasionalisasi, dan pencatatan log, dll.
Application NocoBase berbasis pada Koa, sehingga ctx pada dasarnya adalah Koa Context, namun NocoBase memperluas lebih banyak API di atasnya, sehingga Anda dapat dengan mudah menangani logika bisnis di Middleware dan Action. Setiap request memiliki ctx independen, memastikan isolasi data antar request.
ctx.action
ctx.action menyediakan informasi Action yang dieksekusi oleh request saat ini, termasuk:
- ctx.action.params
- ctx.action.actionName
- ctx.action.resourceName
ctx.i18n & ctx.t()
Dukungan internasionalisasi (i18n).
ctx.i18nmenyediakan informasi localectx.t()digunakan untuk menerjemahkan string sesuai bahasa
ctx.db
ctx.db menyediakan interface akses database, dapat langsung mengoperasikan model dan mengeksekusi query.
ctx.cache
ctx.cache menyediakan operasi cache, mendukung baca dan tulis cache, sering digunakan untuk mempercepat akses data atau menyimpan status sementara.
ctx.app
ctx.app adalah instance aplikasi NocoBase, dapat mengakses konfigurasi global, plugin, dan service.
ctx.auth.user
ctx.auth.user mendapatkan informasi pengguna yang sudah terautentikasi saat ini, cocok untuk validasi hak akses atau logika bisnis.
ctx.state.currentRoles
ctx.state digunakan untuk berbagi data dalam rantai middleware.
ctx.logger
ctx.logger menyediakan kemampuan pencatatan log, mendukung output log multi-level.
ctx.permission & ctx.can()
ctx.permission digunakan untuk manajemen hak akses, ctx.can() digunakan untuk menentukan apakah pengguna saat ini memiliki hak akses untuk mengeksekusi operasi tertentu.
Ringkasan
- Setiap request berkorespondensi dengan satu objek
ctxindependen ctxadalah ekstensi dari Koa Context, mengintegrasikan berbagai kapabilitas NocoBase- Property umum termasuk:
ctx.db,ctx.cache,ctx.auth,ctx.state,ctx.logger,ctx.can(),ctx.t(), dll. - Menggunakan
ctxdi Middleware dan Action dapat dengan mudah mengoperasikan request, response, hak akses, log, dan database
Tautan Terkait
- Middleware — Alur lengkap penggunaan
ctxuntuk menangani request di middleware - ResourceManager Manajemen Resource — Sumber dan definisi
ctx.actiondi Action resource - ACL Kontrol Hak Akses — Mekanisme validasi hak akses
ctx.permissiondanctx.can() - Cache — Penggunaan detail operasi cache
ctx.cache - Logger Log — Pencatatan log dan konfigurasi output
ctx.logger - i18n Internasionalisasi — Dukungan internasionalisasi
ctx.t()danctx.i18n

