Open2

NestJSの学習

TkTk

DTO(DataTransferObject)

なぜ使うか?

  • NestJSのバリデーション機能を使えるようになる
  • 保守性、リクエストの内容が変わってもDTO内に修正箇所を閉じることができる
TkTk

NestJSでバリデーションを行う

バリデーション、ユーザー名の文字数とか色々

Pipeという機能を使え

  • ハンドラーがリクエストを受け取る前にリクエストに対して処理を行う
  • データの変換とバリデーションが可能
  • Pipeで例外を返すことも可能である
  • ValidationPipe、ParseIntPipe、ParseBoolPipe、ParseUUIDPipe、DefaultValuePipeなど様々なパイプがある

どうやって適用する?

  • ハンドラへの適用

    @UsePipes(使用したいPipeの名前)
    create(@Body~~~){}

  • パラメータごとへの適用

    下記のようにリクエストパラメータのそれぞれに異なるpipeを使用することができる
    @Body('id', ParseIntPipe) id: number
    @Body('isActive', ParseBoolPipe) isActive: boolean

  • グローバルへの適用

    main.tsのapp.useGlobalPipesとかやると全体へ適用することもできる(これあんま使わなそうだけどw