Ця документація була автоматично перекладена штучним інтелектом.
У NocoBase кожен запит генерує об'єкт ctx, який є екземпляром Context. Контекст інкапсулює інформацію про запит та відповідь, а також надає специфічні для NocoBase функції, такі як доступ до бази даних, операції кешування, управління дозволами, інтернаціоналізація та ведення журналів.
Application NocoBase базується на Koa, тому ctx по суті є Koa Context. Однак NocoBase розширює його багатими API, що дозволяє розробникам зручно обробляти бізнес-логіку в Middleware та Action. Кожен запит має незалежний ctx, що забезпечує ізоляцію та безпеку даних між запитами.
ctx.action надає доступ до Action, що виконується для поточного запиту. Включає:
ctx.action.paramsctx.action.actionNamectx.action.resourceNameПідтримка інтернаціоналізації (i18n).
ctx.i18n надає інформацію про мовне середовищеctx.t() використовується для перекладу рядків залежно від мовиctx.db надає інтерфейс для доступу до бази даних, дозволяючи безпосередньо працювати з моделями та виконувати запити.
ctx.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 дозволяє зручно обробляти запити, відповіді, дозволи, журнали та базу даних.