Nest js - 在 ToJSON 方法中更改虚线的大写字母

Nest js - Change capital letter for dashed in ToJSON method

我有方法:

@Entity()
export class Picklist extends BaseD2CEntity {
  @ApiHideProperty()
  @PrimaryGeneratedColumn()
  id: number;

  @Column({ name: 'picklist_name' })
  @IsString()
  @ApiProperty({ type: String, description: 'picklist_name' })
  picklistName: string;

  toJSON() {
    return classToPlain(this);
  }

}

目前要序列化对象,有:

myPicklist.picklist.toJSON(); 我得到:

{ id: 7, picklistName: "status", }

什么是正确的。 但是,我需要替换 picklistName 的大写字母并将其替换为 _,如 picklist_name,如装饰器 @Column 中那样。 这可能吗?

公开不同名称的属性

您可以使用 class-transformer 的 @Expose 装饰器在序列化中公开具有不同名称的属性,请参阅此 :

@Expose({ name: 'picklist_name' })
picklistName: string;

Built-in ClassSerializerInterceptor

您可以使用 built-in ClassSerializerInterceptor 在从控制器方法返回实体时自动序列化您的实体,而不是自己定义 toJSON 方法,请参阅此 .

@UseInterceptors(ClassSerializerInterceptor)