我可以使用class-validator
验证Entity
列吗?
这不会验证列:
import { IsEmail } from 'class-validator';
@Entity()
export class Admin extends BaseEntity {
@Column({ unique: true })
@IsEmail()
email: string;
}
然而,当我在代码中除实体以外的任何其他地方使用class-validator
时,它会正确验证,不允许错误的输入。
这项工作:
@InputType()
export class RegisterInput {
@Field()
@IsEmail()
email: string;
}
实体应该是干净的
@Entity()
export class Admin extends BaseEntity {
@Column({ unique: true })
email: string;
}
当您定义用于检查传入请求的DTO时。
export class AdminDto {
@IsEmail()
email: string;
}
在控制器中,您将使用AdminDto检查传入请求。
@Controlller('route')
export class AdminController {
constructor(private yourService: yourserviceClass)
@Post('/api')
async createSomething(@Body('email', ValidationPipe) email: string){ //Your request body //would be checked against your DTO
this.yourService.createMethod(email)
}
希望这能回答你的问题。