Эта документация была автоматически переведена ИИ.
Контекст
В NocoBase каждый запрос генерирует объект ctx, который является экземпляром Context. ctx инкапсулирует информацию о запросе и ответе, а также предоставляет специфические для NocoBase функции, такие как доступ к базе данных, операции с кэшем, управление правами доступа, интернационализация и логирование.
Приложение NocoBase основано на Koa, поэтому ctx по сути является Koa Context. Однако NocoBase расширяет его богатым набором API, позволяя разработчикам удобно обрабатывать бизнес-логику в Middleware и Action. Каждый запрос имеет независимый ctx, что обеспечивает изоляцию и безопасность данных между запросами.
ctx.action
ctx.action предоставляет доступ к Action, выполняемому для текущего запроса. Включает:
- ctx.action.params
- ctx.action.actionName
- ctx.action.resourceName
ctx.i18n & ctx.t()
Поддержка интернационализации (i18n).
ctx.i18nпредоставляет информацию о языковой средеctx.t()используется для перевода строк в зависимости от языка
ctx.db
ctx.db предоставляет интерфейс для доступа к базе данных, позволяя напрямую работать с моделями и выполнять запросы.
ctx.cache
ctx.cache предоставляет операции кэширования, поддерживая чтение и запись в кэш. Обычно используется для ускорения доступа к данным или сохранения временного состояния.
ctx.app
ctx.app — это экземпляр приложения NocoBase, который предоставляет доступ к глобальной конфигурации, плагинам и сервисам.
ctx.auth.user
ctx.auth.user получает информацию о текущем аутентифицированном пользователе, что удобно для проверок прав доступа или использования в бизнес-логике.
ctx.state.currentRoles
ctx.state используется для обмена данными в цепочке middleware.
ctx.logger
ctx.logger предоставляет возможности логирования, поддерживая вывод логов различных уровней.
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 и Action позволяет удобно обрабатывать запросы, ответы, права доступа, логи и базу данных.

