מסמך זה תורגם על ידי בינה מלאכותית. לכל אי דיוק, אנא עיין בגרסה האנגלית
ב-NocoBase, כל בקשה יוצרת אובייקט ctx, שהוא מופע (instance) של Context. ה-Context עוטף את המידע של הבקשה והתגובה, ובמקביל מספק פונקציונליות ייחודית ל-NocoBase, כמו גישה למסד נתונים, פעולות מטמון, ניהול הרשאות, בינאום (internationalization) ורישום לוגים.
ה-Application של NocoBase מבוסס על Koa, ולכן ctx הוא למעשה Koa Context. עם זאת, NocoBase הרחיבה אותו עם ממשקי API עשירים, המאפשרים למפתחים לטפל בנוחות בלוגיקה עסקית ב-Middleware וב-Action-ים. לכל בקשה יש ctx עצמאי, מה שמבטיח בידוד נתונים ואבטחה בין בקשות.
ctx.action מספק גישה ל-Action המבוצע עבור הבקשה הנוכחית. הוא כולל:
ctx.action.paramsctx.action.actionNamectx.action.resourceNameתמיכה בבינאום (i18n).
ctx.i18n מספק מידע על הגדרות השפה (locale)ctx.t() משמש לתרגום מחרוזות בהתאם לשפהctx.db מספק ממשק לגישה למסד הנתונים, ומאפשר לכם לפעול ישירות על מודלים ולבצע שאילתות.
ctx.cache מספק פעולות מטמון (cache), תומך בקריאה וכתיבה למטמון, ומשמש לעיתים קרובות להאצת גישה לנתונים או לשמירת מצב זמני.
ctx.app הוא מופע היישום של NocoBase, ומאפשר גישה לתצורה גלובלית, תוספים ושירותים.
ctx.auth.user מאחזר את פרטי המשתמש המאומת הנוכחי, ומתאים לשימוש בבדיקות הרשאות או בלוגיקה עסקית.
ctx.state משמש לשיתוף נתונים בשרשרת ה-middleware.
ctx.logger מספק יכולות רישום לוגים, ותומך בפלט לוגים מרובה רמות.
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-ים מאפשר לטפל בנוחות בבקשות, תגובות, הרשאות, לוגים ומסד נתונים.