เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ
ใน NocoBase ทุกๆ คำขอจะสร้างอ็อบเจกต์ ctx ขึ้นมาครับ ซึ่งเป็นอินสแตนซ์ของ Context โดย Context จะรวบรวมข้อมูลคำขอและการตอบกลับไว้ พร้อมทั้งมีฟังก์ชันการทำงานเฉพาะของ NocoBase ให้ใช้งานด้วยครับ เช่น การเข้าถึงฐานข้อมูล, การจัดการแคช, การจัดการสิทธิ์, การรองรับหลายภาษา (Internationalization) และการบันทึก Log เป็นต้น
NocoBase Application ถูกสร้างขึ้นบน Koa ดังนั้น ctx จึงเป็น Koa Context โดยพื้นฐาน แต่ NocoBase ได้ขยาย API ที่หลากหลายเพิ่มเติมเข้าไป เพื่อให้ผู้พัฒนาสามารถจัดการ Business Logic ได้อย่างสะดวกสบายใน Middleware และ Action ครับ แต่ละคำขอจะมี ctx ที่เป็นอิสระต่อกัน ซึ่งช่วยให้มั่นใจได้ถึงการแยกข้อมูลและความปลอดภัยระหว่างคำขอต่างๆ ครับ
ctx.action ใช้สำหรับเข้าถึง Action ที่กำลังถูกเรียกใช้งานสำหรับคำขอปัจจุบันครับ ซึ่งประกอบด้วย:
รองรับการใช้งานหลายภาษา (Internationalization หรือ i18n) ครับ
ctx.i18n ใช้สำหรับให้ข้อมูลเกี่ยวกับภาษาและภูมิภาค (locale)ctx.t() ใช้สำหรับแปลสตริงตามภาษาของคำขอctx.db มีอินเทอร์เฟซสำหรับเข้าถึงฐานข้อมูล ช่วยให้คุณสามารถจัดการโมเดลและรันคิวรีได้โดยตรงครับ
ctx.cache มีฟังก์ชันการจัดการแคช รองรับการอ่านและเขียนข้อมูลลงในแคช ซึ่งมักใช้เพื่อเพิ่มความเร็วในการเข้าถึงข้อมูล หรือเก็บสถานะชั่วคราวครับ
ctx.app คืออินสแตนซ์ของ NocoBase Application ที่สามารถเข้าถึงการตั้งค่าส่วนกลาง, ปลั๊กอิน และบริการต่างๆ ได้ครับ
ctx.auth.user ใช้สำหรับดึงข้อมูลผู้ใช้ที่ล็อกอินอยู่ในปัจจุบัน เหมาะสำหรับใช้ในการตรวจสอบสิทธิ์หรือใน Business Logic ครับ
ctx.state ใช้สำหรับแชร์ข้อมูลระหว่าง Middleware ต่างๆ ในเชนครับ
ctx.logger มีฟังก์ชันการบันทึก Log รองรับการแสดงผล Log ได้หลายระดับครับ
ctx.permission ใช้สำหรับจัดการสิทธิ์ ส่วน ctx.can() ใช้สำหรับตรวจสอบว่าผู้ใช้ปัจจุบันมีสิทธิ์ในการดำเนินการบางอย่างหรือไม่ครับ
ctx ที่เป็นอิสระต่อกันครับctx เป็นส่วนขยายของ Koa Context ที่รวมฟังก์ชันการทำงานของ NocoBase เข้าไว้ด้วยกันctx.db, ctx.cache, ctx.auth, ctx.state, ctx.logger, ctx.can(), ctx.t() เป็นต้นctx ใน Middleware และ Action ช่วยให้เราสามารถจัดการคำขอ, การตอบกลับ, สิทธิ์, Log และฐานข้อมูลได้อย่างสะดวกสบายครับ