🐙

classvalidatorが正常に働くために

に公開

とりまバリデーションパイプをグローバルにかけるのを忘れずに

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を型注釈にかかれてる型にへんかんする。ただし、仮にプロパティが食い違っていても、無理くり変換してしまうので注意。

whitelistforbidNonWhitelistedがtrueじゃないと、余計なプロパティをはじけない。
これらがなくても、プロパティの型が間違っている場合は指摘してくれるが、例外に対処できない。サーバーが固まってしまうかもしれないので、例外にも対処できるようにしておこう

Discussion