เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ
NocoBase มี DataSourceManager ให้ใช้งานสำหรับการจัดการแหล่งข้อมูลหลายแหล่งครับ/ค่ะ แต่ละ DataSource จะมีอินสแตนซ์ของ Database, ResourceManager และ ACL เป็นของตัวเอง ซึ่งช่วยให้นักพัฒนาสามารถจัดการและขยายแหล่งข้อมูลหลายแหล่งได้อย่างยืดหยุ่นครับ/ค่ะ
แต่ละอินสแตนซ์ของ DataSource จะประกอบด้วยสิ่งต่อไปนี้ครับ/ค่ะ:
dataSource.collectionManager: ใช้สำหรับจัดการคอลเลกชันและฟิลด์ครับ/ค่ะdataSource.resourceManager: จัดการการดำเนินการที่เกี่ยวข้องกับทรัพยากร (เช่น การสร้าง อ่าน อัปเดต และลบ หรือ CRUD) ครับ/ค่ะdataSource.acl: การควบคุมการเข้าถึง (ACL) สำหรับการดำเนินการกับทรัพยากรครับ/ค่ะเพื่อความสะดวกในการเข้าถึง จึงมีชื่อเรียกย่อ (alias) สำหรับสมาชิกที่เกี่ยวข้องกับแหล่งข้อมูลหลักดังนี้ครับ/ค่ะ:
app.db เทียบเท่ากับ dataSourceManager.get('main').collectionManager.dbapp.acl เทียบเท่ากับ dataSourceManager.get('main').aclapp.resourceManager เทียบเท่ากับ dataSourceManager.get('main').resourceManagerเมธอดนี้จะคืนค่าอินสแตนซ์ของ DataSource ที่ระบุครับ/ค่ะ
เมธอดนี้ใช้สำหรับลงทะเบียนมิดเดิลแวร์สำหรับแหล่งข้อมูลทั้งหมดครับ/ค่ะ ซึ่งจะส่งผลต่อการดำเนินการบนแหล่งข้อมูลทั้งหมดครับ/ค่ะ
เมธอดนี้จะทำงานก่อนที่แหล่งข้อมูลจะถูกโหลดครับ/ค่ะ มักใช้สำหรับการลงทะเบียนคลาสแบบ static เช่น คลาสโมเดลและการลงทะเบียนประเภทฟิลด์ครับ/ค่ะ
เมธอดนี้จะทำงานหลังจากที่แหล่งข้อมูลถูกโหลดครับ/ค่ะ มักใช้สำหรับการลงทะเบียนการดำเนินการ, การตั้งค่าการควบคุมการเข้าถึง (ACL) เป็นต้นครับ/ค่ะ
สำหรับการขยายแหล่งข้อมูลแบบสมบูรณ์ โปรดดูที่ บทการขยายแหล่งข้อมูล ครับ/ค่ะ