DataSourceManager - Quản lý nguồn dữ liệu
NocoBase cung cấp DataSourceManager, dùng để quản lý nhiều nguồn dữ liệu. Mỗi DataSource đều có instance Database, ResourceManager và ACL riêng, bạn có thể quản lý và mở rộng các nguồn dữ liệu khác nhau một cách linh hoạt.
Khái niệm cơ bản
Mỗi instance DataSource chứa các nội dung sau:
dataSource.collectionManager: Dùng để quản lý bảng dữ liệu và Field.dataSource.resourceManager: Xử lý các thao tác liên quan đến resource (như CRUD, v.v.).dataSource.acl: Kiểm soát truy cập (ACL) cho thao tác resource.
Để tiện truy cập, NocoBase cung cấp các bí danh tắt cho các thành viên liên quan của nguồn dữ liệu chính:
app.dbtương đương vớidataSourceManager.get('main').collectionManager.dbapp.acltương đương vớidataSourceManager.get('main').aclapp.resourceManagertương đương vớidataSourceManager.get('main').resourceManager
Phương thức phổ biến
dataSourceManager.get(dataSourceKey)
Trả về instance DataSource đã chỉ định.
dataSourceManager.use()
Đăng ký middleware cho tất cả nguồn dữ liệu, sẽ ảnh hưởng đến thao tác của tất cả nguồn dữ liệu.
dataSourceManager.beforeAddDataSource()
Thực thi trước khi nguồn dữ liệu được tải. Thường được dùng để đăng ký lớp tĩnh, ví dụ đăng ký lớp model, kiểu Field:
dataSourceManager.afterAddDataSource()
Thực thi sau khi nguồn dữ liệu được tải. Thường được dùng để đăng ký thao tác, đặt kiểm soát truy cập, v.v.
Mở rộng nguồn dữ liệu
Cách mở rộng nguồn dữ liệu đầy đủ vui lòng tham khảo chương Mở rộng nguồn dữ liệu.
Liên kết liên quan
- Database — CRUD, Repository, transaction và sự kiện database
- Collections — Định nghĩa hoặc mở rộng cấu trúc bảng dữ liệu bằng code
- ResourceManager — Đăng ký interface tùy chỉnh và thao tác resource
- ACL — Quyền role, đoạn quyền và kiểm soát truy cập
- Plugin — Vòng đời lớp Plugin, phương thức thành viên và đối tượng
app

