TypeORMのクラスバリデーターの使用方法


クラスバリデーターを使用すると、TypeORMのエンティティクラス内でデータのバリデーションルールを定義し、自動的にバリデーションを実行できます。以下に、TypeORMのクラスバリデーターの使用方法といくつかのコード例を示します。

  1. インストール: まず、TypeORMとクラスバリデーターのパッケージをインストールします。
npm install typeorm class-validator
  1. エンティティクラスの作成: TypeORMのエンティティクラスを作成し、バリデーションルールを定義します。例えば、ユーザーエンティティの場合を考えてみましょう。
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
import { MaxLength, IsEmail } from 'class-validator';
@Entity()
export class User {
  @PrimaryGeneratedColumn()
  id: number;
  @Column()
  @MaxLength(50, { message: '名前は50文字以内で入力してください。' })
  name: string;
  @Column()
  @IsEmail({}, { message: '有効なメールアドレスを入力してください。' })
  email: string;
}

上記の例では、MaxLengthデコレータを使用してnameプロパティの最大文字数を制限し、IsEmailデコレータを使用してemailプロパティが有効なメールアドレス形式であることを確認しています。

  1. バリデーションの実行: エンティティを作成し、バリデーションを実行します。
import { validate } from 'class-validator';
import { User } from './User';
const user = new User();
user.name = 'John Doe';
user.email = 'invalid-email';
validate(user).then(errors => {
  if (errors.length > 0) {
    console.log('バリデーションエラー:', errors);
  } else {
    console.log('バリデーション成功');
  }
});

上記の例では、validate関数を使用してエンティティのバリデーションを実行し、エラーがある場合はエラーメッセージを出力します。