本文へスキップ

source-decorators

組み込みデコレータ

デコレータソース
@Body()req.body
@Query()req.query
@Header()req.headers
@Uri()req.params
@Params()req.params
@Session()req.session

デコレータの詳細

@Body()

HTTP リクエストボディからデータを抽出し、対応するフィールドにバインドします。

  • ソース: req.body

@Query()

HTTP リクエストのクエリパラメータからデータを抽出し、対応するフィールドにバインドします。

  • ソース: req.query

HTTP リクエストヘッダーから値を抽出し、対応するフィールドにバインドします。 認証トークン(Authorization)やカスタムヘッダーなどのリクエストメタデータに DTO から直接アクセスする際によく使用されます。

  • ソース: req.headers

@Uri() / @Params()

HTTP リクエスト URL からパス変数を抽出し、対応するフィールドにバインドします。 REST API でリソース識別子(id など)を DTO の一部として受け取る際に使用されます。

両方のデコレータは内部的に同じ動作を行い、@Uri()@Params() のエイリアスです。

  • ソース: req.params
  • /users/:id/posts/:postId などのルートで一般的に使用されます

@Session()

セッションに保存された値を抽出し、DTO フィールドにバインドします。 認証済みユーザー情報などのサーバーサイドの状態を DTO に渡す際に便利です。

  • ソース: req.session
  • セッションミドルウェアが設定されている場合のみ使用可能

使用例

Express アプリケーション内でソースデコレータを使用する例です。

class Request {
@Body('email')
email!: string

@Query('limit')
limit!: number

@Header('Authorization')
authorization!: string
}