Указание настраиваемых сообщений об ошибках при проверке строки в mongoose [дубликат]

Aug 20 2020

Я пытаюсь проверить поле пола, которое может быть мужским или женским, поэтому я использовал валидатор mongoose "enum" для строк, но я не могу понять, как указать для него настраиваемое сообщение об ошибке.

Я попытался обернуть перечисление в массив, например:

enum: [["мужской", "женский"], "настраиваемое сообщение об ошибке]

Поскольку этот синтаксис поддерживается другими встроенными средствами проверки mongoose, но безрезультатно.

Я могу написать собственный валидатор, чтобы делать то же самое, используя регулярное выражение, но мне было интересно, не упускаю ли я чего-то, потому что кажется немного странным, что я не могу указать сообщение об ошибке, а документы мангуста немного скудны рассматривать

Ответы

1 SpackJarrow Aug 20 2020 at 11:29

Согласно документам, простого способа сделать это нет. Вам придется вручную запустить, doc.validateSync()чтобы проверить наличие ошибок.

Однако, основываясь на решениях этого вопроса, это должно работать:

gender: {
        type: String,
        enum: {
            values: ['male', 'female'],
            message: 'Your error message'
        }
    }