Event - Sự kiện
Server NocoBase trong các giai đoạn vòng đời ứng dụng, vòng đời Plugin và thao tác database, đều sẽ kích hoạt các sự kiện (Event) tương ứng. Bạn có thể lắng nghe các sự kiện này để triển khai logic mở rộng, thao tác tự động hoặc hành vi tùy chỉnh.
Hệ thống sự kiện của NocoBase chủ yếu chia làm hai cấp:
app.on()— Sự kiện cấp ứng dụng: Lắng nghe các sự kiện vòng đời của ứng dụng, ví dụ khởi động, cài đặt, bật Plugin, v.v.db.on()— Sự kiện cấp database: Lắng nghe các sự kiện thao tác cấp model dữ liệu, ví dụ tạo, cập nhật, xóa bản ghi, v.v.
Cả hai đều kế thừa từ EventEmitter của Node.js, hỗ trợ dùng các interface tiêu chuẩn .on(), .off(), .emit(). NocoBase còn mở rộng emitAsync, dùng để kích hoạt sự kiện bất đồng bộ và đợi tất cả listener thực thi xong.
Vị trí đăng ký lắng nghe sự kiện
Việc lắng nghe sự kiện thường được đăng ký trong phương thức beforeLoad() của Plugin, như vậy có thể đảm bảo sự kiện đã sẵn sàng trong giai đoạn tải Plugin, các logic tiếp theo có thể phản hồi đúng.
Lắng nghe sự kiện ứng dụng app.on()
Sự kiện ứng dụng dùng để bắt các thay đổi vòng đời của ứng dụng và Plugin NocoBase, phù hợp để làm logic khởi tạo, đăng ký tài nguyên hoặc kiểm tra phụ thuộc.
Các loại sự kiện phổ biến
Ví dụ lắng nghe sự kiện khởi động ứng dụng:
Ví dụ lắng nghe sự kiện tải Plugin:
Lắng nghe sự kiện database db.on()
Sự kiện database dùng để bắt các thay đổi dữ liệu ở tầng model, phù hợp để làm audit, đồng bộ, tự động điền, v.v.
Các loại sự kiện phổ biến
Ví dụ lắng nghe sự kiện sau khi tạo dữ liệu:
Ví dụ lắng nghe sự kiện trước khi cập nhật dữ liệu:
Liên kết liên quan
- Plugin — Đăng ký lắng nghe sự kiện trong các phương thức vòng đời Plugin
- Thao tác Database — Nguồn kích hoạt sự kiện cấp database và API thao tác dữ liệu
- Collections — Định nghĩa bảng dữ liệu và mối quan hệ model trong sự kiện database
- Middleware — Sự phối hợp giữa middleware và sự kiện trong xử lý request
- Tổng quan phát triển server — Vai trò của hệ thống sự kiện trong kiến trúc server

