Пн goose схема: как установить максимальное количество элементов в массиве? - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть схема mon goose, которая содержит массив объектов и массив строк. Как установить валидаторы, чтобы ограничить количество элементов, которые могут быть вставлены до 10 в этих двух случаях?

    todoList: [{ type: String }],
    pictures: [{ type: String }],

1 Ответ

1 голос
/ 12 апреля 2020

Для массивов по умолчанию нет опции maxlength.

Обходной путь 1: Вы можете определить пользовательский валидатор следующим образом:

todoList: [{ 
    type: String,
    validate: {
      validator: function(v,x,z) {
          return !(this.todoList.length > 10);  
      }, 
      message: props => `${props.value} exceeds maximum array size (10)!`
    },
    required: true
}]

Обходной путь 2: Вы можете определить pre hook следующим образом:

schema.pre('validate', function(next) {
    if (this.todoList.length > 10) throw("todoList exceeds maximum array size (10)!");
    next();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...