209 похожих чатов

Час копаясь я чудом нашел баг с кастомным ValidationPipe. Есть такой

валидейшен пайп и он используется глобально.
@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, ну ис текттрейс который меня туда привел(в валидейшен пайп). Почему возникает такая проблема?

1 ответов

3 просмотра

Подскажите, получилось ли у Вас найти решение проблемы?) Или условие в начале и есть решение?

Похожие вопросы

Обсуждают сегодня

Карта сайта