【问题标题】:How to handle empty strings with class validators in TypeORM如何使用 TypeORM 中的类验证器处理空字符串
【发布时间】:2021-12-26 20:34:47
【问题描述】:

我想从我的邮递员创建用户,我想测试我的 API 端点,就目前而言,如果我将“”之类的内容作为名称列的值传递,则可以创建用户,我该如何处理在 TypeORM 中?我不知道任何类验证器。我的 Dto 文件如下:

从“类验证器”导入 { IsNotEmpty, IsString };

export class CreateRoomUserDto {
  @IsNotEmpty()
  @IsString()
  public name: string;

  @IsNotEmpty()
  @IsString()
  public room_interest: string;    
  
  @IsNotEmpty()
  @IsString()
  public occupation: string;

}

这是下面的实体文件

@import { IsNotEmpty } from 'class-validator';
import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, OneToMany } from 'typeorm';
import { RoomUser } from '@/interfaces/room-user.interface';

Entity()
export class RoomUserEntity implements RoomUser {
  @PrimaryGeneratedColumn()
  id: string;

  @Column()
  @IsNotEmpty()
  name: string;

  @Column()
  @IsNotEmpty()
  room_interest: string;

  @Column()
  @IsNotEmpty()
  occupation: string;

  @CreateDateColumn()
  createdAt: Date;

  @Column()
  @UpdateDateColumn()
  updatedAt: Date;
}

【问题讨论】:

    标签: node.js typescript validation typeorm


    【解决方案1】:

    下面的代码解决了这个问题,但是,如果它是一个只有空格的空数组,它只能捕获错误,但如果开头有空格和/或字符串的结尾。

    export class CreateRoomUserDto {
      @IsNotEmpty()
      @IsString()
      @Transform(({ value }: TransformFnParams) => value?.trim())
      public name: string;
    
      @IsNotEmpty()
      @IsString()
      @Transform(({ value }: TransformFnParams) => value?.trim())
      public room_interest: string;    
      
      @IsNotEmpty()
      @IsString()
      @Transform(({ value }: TransformFnParams) => value?.trim())
      public occupation: string;
    
    }
    

    【讨论】:

      猜你喜欢
      • 2020-09-10
      • 2021-05-20
      • 2018-07-28
      • 2016-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      相关资源
      最近更新 更多