валидейшен пайп и он используется глобально.
@Injectable()
export class ValidationPipe implements PipeTransform<any> {
async transform(value: any, metadata: ArgumentMetadata): Promise<any> {
if (!value) {
throw new BadRequestException('No data submitted');
}
const obj = plainToClass(metadata.metatype, value);
const errors = await validate(obj);
if (errors.length) {
const validationErrorData = errors
.map((error) => {
for (const key in error.constraints) {
return error.constraints[key];
}
})
.join(', ');
throw new ValidationException({
message: validationErrorData,
error: 'Bad Request',
});
}
return value;
}
}
Проблема возникает когда я делаю "гет" запрос с параметром в строке динамическим @Get('confirmRegistration/:value').
Ошибка возникает в валидейшен пайп тут const errors = await validate(obj); когда передаю obj в validate. Там будет значение из строки урла /:value и при этом упадет с ошибкой TypeError: Cannot read property 'constructor' of undefined, ну ис текттрейс который меня туда привел(в валидейшен пайп). Почему возникает такая проблема?
Подскажите, получилось ли у Вас найти решение проблемы?) Или условие в начале и есть решение?
Обсуждают сегодня