validate.js возвращает ошибку «неизвестный шаблон валидатора» - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь использовать validate.js для проверки ввода от внешнего интерфейса перед вводом его в базу данных с узлом, но я получаю ошибку, которую не могу понять.Я просмотрел документы и считаю, что правильно установил ограничения.Точная ошибка:

message:"Unknown validator pattern"

мой валидатор настроен так:

                    let alphanumeric = /^[a-zA-Z0-9]*$/;
                    let constraints = {
                        clientUsername:{
                            presence: true,
                            length: {min:8, max:15},
                            pattern:alphanumeric,
                            message: 'make sure client username is between 8-15 characters, is only numbers and letters'
                        },
                        tileCategory:{
                            presence:true,
                            length:{min:1, max:1},
                            numericality:{
                                onlyInteger:true,
                                lessThanOrEqualTo:tileCategoryNumber,
                            },
                            message:'enter a number, 1 char in length, less than or equal to 3' //the current number of tiles
                        }
                    };

                    validate({clientUsername: input.clientUsername},constraints);

Сначала я подумал, что это шаблон регулярных выражений, но попытался закомментировать это, а затем сказал

message:"Unknown validator messsage"

поэтому я предполагаю, что с моим валидатором вообще что-то не так.

на самом верху я конечно включил const validate = require('validate.js');

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Что-то похожее на это только обожгло меня, посмотрите на документацию снова.

pattern является своего рода суб-валидатором format и должно выглядеть так:

{
    format: {
        pattern: "[A-Za-z0-9]+"
    }
}

Вы пытаетесь использовать pattern на «верхнем уровне».Я не вижу в документации ничего, что подразумевало бы наличие вспомогательных шаблонов, таких как alphanumeric.(Я думаю, что язык, который использовал бы инструмент, говорит: «pattern - это опция валидатора format», но я не уверен.)

Ваше сообщение об ошибке также подразумевает орфографическую ошибку:говорит вам, что не распознает messsage, в котором есть 3 буквы 's', но должно иметь 2.

0 голосов
/ 30 мая 2018

Есть (2) вещи, которые я мог видеть, являющиеся проблемой.Во-первых, вы используете регулярные выражения на основе JS с предыдущим и следующим /.Попробуйте удалить их.

Кроме того, я бы порекомендовал попытаться удалить буквенно-цифровой параметр и ввести регулярное выражение непосредственно ... это также может быть проблема типа.

  pattern:"^[a-zA-Z0-9]*$",

Надеюсьэто помогает!:)

...