跳转到主要内容

validation

要使用验证,请使用 class-validator。 以下是如何在 TypeORM 中使用 class-validator 的示例:

import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"
import {
Contains,
IsInt,
Length,
IsEmail,
IsFQDN,
IsDate,
Min,
Max,
} from "class-validator"

@Entity()
export class Post {
@PrimaryGeneratedColumn()
id: number

@Column()
@Length(10, 20)
title: string

@Column()
@Contains("hello")
text: string

@Column()
@IsInt()
@Min(0)
@Max(10)
rating: number

@Column()
@IsEmail()
email: string

@Column()
@IsFQDN()
site: string

@Column()
@IsDate()
createDate: Date
}

验证:

import { validate } from "class-validator"

let post = new Post()
post.title = "Hello" // 不应通过验证
post.text = "this is a great post about hell world" // 不应通过验证
post.rating = 11 // 不应通过验证
post.email = "google.com" // 不应通过验证
post.site = "googlecom" // 不应通过验证

const errors = await validate(post)
if (errors.length > 0) {
throw new Error(`Validation failed!`)
} else {
await dataSource.manager.save(post)
}

在执行验证之前,请确保已在项目中安装了 class-validator 并导入了相关的验证器。验证器将根据在实体类属性上的装饰器进行验证。如果验证失败,您可以根据错误信息采取适当的操作。