クラスバリデーターを使用すると、TypeORMのエンティティクラス内でデータのバリデーションルールを定義し、自動的にバリデーションを実行できます。以下に、TypeORMのクラスバリデーターの使用方法といくつかのコード例を示します。
- インストール: まず、TypeORMとクラスバリデーターのパッケージをインストールします。
npm install typeorm class-validator
- エンティティクラスの作成: 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
プロパティが有効なメールアドレス形式であることを確認しています。
- バリデーションの実行: エンティティを作成し、バリデーションを実行します。
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
関数を使用してエンティティのバリデーションを実行し、エラーがある場合はエラーメッセージを出力します。