LoginSignup
7
4

NestJSのデコレータを表にまとめた

Posted at

キャッチアップを進めていくにあたり、デコレータがどれだけあるのかが気になったので表でまとめてみました。

範囲は公式ドキュメントのOVER VIEWになります。

Pages:Controllers

No 名称 詳細
1 @Controller() ルートのエンドポイントをまとめたコントローラーを定義する。
2 @HttpCode HTTP ステータスコードを指定するためのデコレータ。
3 @Request(), @Req() Express リクエストオブジェクトへのアクセスを提供する。
4 @Response(), @Res()* Express レスポンスオブジェクトへのアクセスを提供する。
5 @Next() 次のミドルウェア関数への制御を渡す。
6 @Session() Express セッションオブジェクトへのアクセスを提供する。
7 @Param(key?) ルーティングされたパスパラメータの値にアクセスする。
8 @Body(key?) リクエストのボディパラメータの値にアクセスする。
9 @Query(key?) リクエストのクエリパラメータの値にアクセスする。
10 @Headers(name?) リクエストのヘッダーパラメータの値にアクセスする。
11 @Ip() クライアントの IP アドレスにアクセスする。
12 @HostParam() ホスト名パラメータの値にアクセスする。
13 @Get() HTTP GET メソッドを処理するルートを定義する。
14 @Post() HTTP POST メソッドを処理するルートを定義する。
15 @Put() HTTP PUT メソッドを処理するルートを定義する。
16 @Delete() HTTP DELETE メソッドを処理するルートを定義する。
17 @Patch() HTTP PATCH メソッドを処理するルートを定義する。
18 @Options() HTTP OPTIONS メソッドを処理するルートを定義する。
19 @Head() HTTP HEAD メソッドを処理するルートを定義する。
20 @All() すべての HTTP メソッドを処理するルートを定義する。
21 @Header() レスポンスのヘッダーを設定する。
22 @Redirect() リクエストを別のURLにリダイレクトする。

Pages:Providers

No 名称 詳細
1 @Injectable クラスがDI(Dependency Injection)可能であることを示す。
2 @UseFilters ルート処理中に例外をキャッチするフィルターを適用する。
3 @Optional() 依存関係の解決時にオプションの依存関係を定義する。

Pages:Modules

No 名称 詳細
1 @Module() アプリケーションの機能をまとめたモジュールを定義する。
2 @Global グローバルスコープでモジュールやプロバイダーを定義する。

Pages:Exception filters

No 名称 詳細
1 @Catch アプリケーション内で発生した例外をキャッチし、適切な処理を行うためのミドルウェアを定義する。

Pages:Pipes

No 名称 詳細
1 @UsePipes リクエストデータのバリデーションや変換を行うためのパイプを適用する。

Pages:Guards

No 名称 詳細
1 @UseGuards() ルートにガードを適用してアクセス制御を行う。
2 @SetMetadata() メタデータを設定する。
3 @Roles() ユーザーの役割を指定する。
4 matchRoles() ユーザーの役割を検証する。

Pages:Interceptors

No 名称 詳細
1 @UseInterceptors リクエストとレスポンスをインターセプトし、処理を追加する。

さいごに

公式ドキュメントの項目でデコレータが追加されれば本記事を更新していきます。
詳細の内容で過不足あればコメントいただけると幸いです。
最後までご覧いただきありがとうございました!

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4