とりまバリデーションパイプをグローバルにかけるのを忘れずに
main.ts
const app = await NestFactory.create(AppModule);
app.useGlobalPipes(new ValidationPipe({
whitelist: true,
forbidNonWhitelisted: true,
transform: true,
}));
await app.listen(3001);
- whitelist
- trueなら、デコレータのついてないプロパティ削除。デコレータの必要ないプロパティが消されないよう、いらなくても@Allowをつけよう。
- forbidNonWhitelisted
- tureで上記の設定で消されるプロパティを、削除せずエラーを吐くようにする
- transform
- trueで受け取ったDTOを型注釈にかかれてる型にへんかんする。ただし、仮にプロパティが食い違っていても、無理くり変換してしまうので注意。
whitelistとforbidNonWhitelistedがtrueじゃないと、余計なプロパティをはじけない。
これらがなくても、プロパティの型が間違っている場合は指摘してくれるが、例外に対処できない。サーバーが固まってしまうかもしれないので、例外にも対処できるようにしておこう