このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください
コンテキスト
NocoBase では、各リクエストで ctx オブジェクトが生成されます。これは Context のインスタンスです。Context には、リクエストとレスポンスの情報がカプセル化されており、データベースアクセス、キャッシュ操作、権限管理、国際化、ログ記録など、NocoBase 独自の機能も提供されています。
NocoBase の Application は Koa をベースにしているため、ctx は本質的に Koa の Context です。しかし、NocoBase はその上に豊富な API を拡張しており、開発者はミドルウェアやアクションでビジネスロジックを簡単に処理できます。各リクエストは独立した ctx を持つため、リクエスト間のデータ分離と安全性が保証されます。
ctx.action
ctx.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 は、ミドルウェアチェーンでデータを共有するために使用されます。
ctx.logger
ctx.logger はログ記録機能を提供し、複数のレベルでのログ出力をサポートしています。
ctx.permission & ctx.can()
ctx.permission は権限管理に使用され、ctx.can() は現在のユーザーが特定のアクションを実行する権限を持っているかを確認するために使用されます。
まとめ
- 各リクエストは独立した
ctxオブジェクトに対応します。 ctxは KoaContextを拡張したもので、NocoBase の機能が統合されています。- よく使われるプロパティには、
ctx.db、ctx.cache、ctx.auth、ctx.state、ctx.logger、ctx.can()、ctx.t()などがあります。 - ミドルウェアやアクションで
ctxを使用すると、リクエスト、レスポンス、権限、ログ、データベースを簡単に操作できます。

