Issue
In the nest.js application on controller level I have to validate DTO.
I've faced with difficulty to check if item is not null (request should be rejected if any list item is null or undefined)
Code bellow demonstrates my configured verifications.
import { ArrayMinSize, IsArray } from 'class-validator'
export class ReminderPayload {
// ...
@IsArray()
@ArrayMinSize(1)
recipients: string[]
}
Question
- I'm looking for help to reject requests with body data like
{
"recipients": [
null
]
}
- How to validate if array items are
stringonly (it should reject handling if object is in the array item position)?
P.S.
'class-validator' injected successfully, and it produces some validation results for my API.
Solution
You need to tell class-validator to run the validations on each item of the array. Change your payload DTO to the following:
import { ArrayMinSize, IsArray, IsString } from 'class-validator';
export class ReminderPayloadDto {
// ...
@IsArray()
// "each" tells class-validator to run the validation on each item of the array
@IsString({ each: true })
@ArrayMinSize(1)
recipients: string[];
}
Link to the docs on this.
Answered By - HMilbradt
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.