Эта документация была автоматически переведена ИИ.
В NocoBase каждый запрос генерирует объект ctx, который является экземпляром Context. ctx инкапсулирует информацию о запросе и ответе, а также предоставляет специфические для NocoBase функции, такие как доступ к базе данных, операции с кэшем, управление правами доступа, интернационализация и логирование.
Приложение NocoBase основано на Koa, поэтому ctx по сути является Koa Context. Однако NocoBase расширяет его богатым набором API, позволяя разработчикам удобно обрабатывать бизнес-логику в Middleware и Action. Каждый запрос имеет независимый ctx, что обеспечивает изоляцию и безопасность данных между запросами.
ctx.action предоставляет доступ к Action, выполняемому для текущего запроса. Включает:
Поддержка интернационализации (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 позволяет удобно обрабатывать запросы, ответы, права доступа, логи и базу данных.