Meteor collection2 — все сообщения проверки

Я ищу способ получить все ошибки проверки. (Я использую Collection2 и SimpleSchema)

Рассмотрим этот код:

Foo.insert({
    title: '',
    description: ''
}, function(error, result) {
    console.error(error);
});

выход:

{
    message: 'Title may not be empty.',
    invalidKeys: [
        0: {
            name: 'title',
            type: 'required',
            value: ''
        },
        1: {
            name: 'description',
            type: 'required',
            value: ''
        }
    ]
}

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

РЕШЕНИЕ:

Я нашел удовлетворительное решение

Foo.simpleSchema().namedContext().keyErrorMessage('title');

person M K    schedule 10.11.2014    source источник


Ответы (1)


Я столкнулся с той же проблемой, и мое решение состояло в том, чтобы вставить указанные ошибки в коллекцию ошибок клиента mongo, которая затем отображала бы ошибки пользователю. Вот что я придумал:

Схема

Schema.newUser = new SimpleSchema({....}); 

Проверка на стороне клиента

function tokenRegistration (newUser) {
  var valContext = Schema.newUser.namedContext('tokenRegForm');
  if (!valContext.validate(newUser)) {
    var keys = valContext.invalidKeys();
    _.each(keys, function (value) {
      var error = value.name,
          message = valContext.keyErrorMessage(error);
      return ErrorMessage.insert({errormessage: message}) 
    });
  }
}
person artisin    schedule 08.12.2014