Dokumen ini diterjemahkan oleh AI. Untuk ketidakakuratan apa pun, silakan lihat versi bahasa Inggris
Server NocoBase akan memicu event (peristiwa) yang sesuai selama siklus hidup aplikasi, siklus hidup plugin, dan operasi basis data. Pengembang plugin dapat mendengarkan event ini untuk mengimplementasikan logika ekstensi, operasi otomatis, atau perilaku kustom.
Sistem event NocoBase dibagi menjadi dua tingkatan utama:
app.on() - Event Tingkat Aplikasi: Mendengarkan event siklus hidup aplikasi, seperti saat memulai, menginstal, mengaktifkan plugin, dll.db.on() - Event Tingkat Basis Data: Mendengarkan event operasi pada tingkat model data, seperti membuat, memperbarui, menghapus catatan, dll.Keduanya mewarisi dari EventEmitter Node.js, mendukung penggunaan antarmuka standar .on(), .off(), .emit(). NocoBase juga memperluas dukungan untuk emitAsync, yang digunakan untuk memicu event secara asinkron dan menunggu semua pendengar selesai dieksekusi.
Pendengar event umumnya harus didaftarkan dalam metode beforeLoad() plugin. Hal ini memastikan bahwa event sudah siap selama fase pemuatan plugin, dan logika selanjutnya dapat merespons dengan benar.
app.on()Event aplikasi digunakan untuk menangkap perubahan siklus hidup aplikasi NocoBase dan plugin, cocok untuk logika inisialisasi, pendaftaran sumber daya, atau deteksi dependensi plugin.
| Nama Event | Waktu Pemicuan | Kegunaan Umum |
|---|---|---|
beforeLoad / afterLoad | Sebelum / setelah pemuatan aplikasi | Mendaftarkan sumber daya, menginisialisasi konfigurasi |
beforeStart / afterStart | Sebelum / setelah layanan dimulai | Memulai tugas, mencetak log startup |
beforeInstall / afterInstall | Sebelum / setelah instalasi aplikasi | Menginisialisasi data, mengimpor template |
beforeStop / afterStop | Sebelum / setelah layanan berhenti | Membersihkan sumber daya, menyimpan status |
beforeDestroy / afterDestroy | Sebelum / setelah penghancuran aplikasi | Menghapus cache, memutuskan koneksi |
beforeLoadPlugin / afterLoadPlugin | Sebelum / setelah pemuatan plugin | Mengubah konfigurasi plugin atau memperluas fungsionalitas |
beforeEnablePlugin / afterEnablePlugin | Sebelum / setelah pengaktifan plugin | Memeriksa dependensi, menginisialisasi logika plugin |
beforeDisablePlugin / afterDisablePlugin | Sebelum / setelah penonaktifan plugin | Membersihkan sumber daya plugin |
afterUpgrade | Setelah pembaruan aplikasi selesai | Melakukan migrasi data atau perbaikan kompatibilitas |
Contoh: Mendengarkan event startup aplikasi
Contoh: Mendengarkan event pemuatan plugin
db.on()Event basis data dapat menangkap berbagai perubahan data pada tingkat model, cocok untuk audit, sinkronisasi, pengisian otomatis, dan operasi lainnya.
| Nama Event | Waktu Pemicuan |
|---|---|
beforeSync / afterSync | Sebelum / setelah sinkronisasi struktur basis data |
beforeValidate / afterValidate | Sebelum / setelah validasi data |
beforeCreate / afterCreate | Sebelum / setelah membuat catatan |
beforeUpdate / afterUpdate | Sebelum / setelah memperbarui catatan |
beforeSave / afterSave | Sebelum / setelah menyimpan (termasuk membuat dan memperbarui) |
beforeDestroy / afterDestroy | Sebelum / setelah menghapus catatan |
afterCreateWithAssociations / afterUpdateWithAssociations / afterSaveWithAssociations | Setelah operasi yang mencakup data asosiasi |
beforeDefineCollection / afterDefineCollection | Sebelum / setelah mendefinisikan koleksi |
beforeRemoveCollection / afterRemoveCollection | Sebelum / setelah menghapus koleksi |
Contoh: Mendengarkan event setelah pembuatan data
Contoh: Mendengarkan event sebelum pembaruan data