تمت ترجمة هذه الوثائق تلقائيًا بواسطة الذكاء الاصطناعي.
في NocoBase، يُنشئ كل طلب كائن ctx، وهو نسخة من السياق (Context). يغلف السياق معلومات الطلب والاستجابة، ويوفر في الوقت نفسه وظائف خاصة بـ NocoBase، مثل الوصول إلى قاعدة البيانات، وعمليات التخزين المؤقت (cache)، وإدارة الأذونات، والتدويل (internationalization)، وتسجيل السجلات (logging)، وغيرها.
تعتمد Application في NocoBase على Koa، لذا فإن ctx هو في الأساس Koa Context. لكن NocoBase وسّعت هذا السياق بواجهات برمجة تطبيقات (APIs) غنية، مما يتيح للمطورين معالجة منطق الأعمال بسهولة في Middleware و Actions. يمتلك كل طلب كائن ctx مستقلًا، مما يضمن عزل البيانات وأمانها بين الطلبات.
ctx.actionيوفر ctx.action الوصول إلى الـ Action الذي يتم تنفيذه للطلب الحالي. يتضمن:
ctx.action.paramsctx.action.actionNamectx.action.resourceNamectx.i18n و ctx.t()دعم التدويل (i18n).
ctx.i18n معلومات اللغة المحلية.ctx.t() لترجمة السلاسل النصية بناءً على اللغة.ctx.dbيوفر ctx.db واجهة للوصول إلى قاعدة البيانات، مما يتيح لك التعامل مباشرة مع النماذج (models) وتنفيذ الاستعلامات.
ctx.cacheيوفر ctx.cache عمليات التخزين المؤقت (cache)، ويدعم القراءة والكتابة من وإلى الذاكرة المؤقتة، ويُستخدم عادةً لتسريع الوصول إلى البيانات أو حفظ الحالات المؤقتة.
ctx.appctx.app هو نسخة تطبيق NocoBase، ويسمح بالوصول إلى الإعدادات العامة، والإضافات (Plugins)، والخدمات.
ctx.auth.userيسترد ctx.auth.user معلومات المستخدم الحالي المصادق عليه، وهو مناسب للاستخدام في التحقق من الأذونات أو منطق الأعمال.
ctx.state.currentRolesيُستخدم ctx.state لمشاركة البيانات في سلسلة الـ middleware.
ctx.loggerيوفر ctx.logger إمكانيات تسجيل السجلات (logging)، ويدعم إخراج السجلات على مستويات متعددة.
ctx.permission و ctx.can()يُستخدم 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 و Actions التعامل بسهولة مع الطلبات، والاستجابات، والأذونات، والسجلات، وقاعدة البيانات.