Open2
NestJSの学習
DTO(DataTransferObject)
なぜ使うか?
- NestJSのバリデーション機能を使えるようになる
- 保守性、リクエストの内容が変わってもDTO内に修正箇所を閉じることができる
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