hur man begränsar värdelängden i en objektarray med class validator typescript?
Jag vill skapa en regel med klassvaliderare, värdet på namnets längd ska vara minst längd=1, max längd=100.
men jag sitter fast i 3 dagar..
varje värde av namn bör vara mellan 1-100 tecken.
[{'id': 1, 'name': 'a'}, {'id': 2, 'name': '0123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678901'}]
// det är okej eftersom 100 tecken.
Jag har försökt och googlat så många gånger.. men inget har fungerat bra. Vad ska jag göra??
import { ApiProperty } from '@nestjs/swagger'
import { Length } from 'class-validator'
import { Column, PrimaryGeneratedColumn } from 'typeorm'
import { MaxLenPostFolderName } from './createPostFolder.dto'
class RenamePostFolder {
@ApiProperty()
@PrimaryGeneratedColumn()
id: number
@ApiProperty({ description: 'post folder name' })
@Column({ type: 'varchar', length: MaxLenPostFolderName, nullable: false })
// @Length(1, MaxLenPostFolderName, { each: true })
name: string
}
//
export class RenamePostFolderDto {
@ApiProperty({ required: true })
@Length(1, MaxLenPostFolderName)
name: string
}
// created new rename dto, because spec updated, to make 'batch rename'
export class RenamePostFolderDtoV2 {
@ApiProperty({ required: true, type: [RenamePostFolder] })
// @Length(1, MaxLenPostFolderName)
postFolders: RenamePostFolder[]
}
Svar #1
Du kan använda MinLength och MaxLength
import { ApiProperty } from '@nestjs/swagger';
import { MaxLength, MinLength } from 'class-validator';
const MIN_LENGTH = 1;
const MAX_LENGTH = 100;
export class RenamePostFolderDto {
@ApiProperty({ required: true })
@MinLength(MIN_LENGTH)
@MaxLength(MAX_LENGTH)
name: string;
}
Det finns listat i flera exempel från class-validators dokumentation på GitHub
