Meteor collection2 - 所有验证消息

时间:2014-11-10 09:37:55

标签: meteor 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: ''
        }
    ]
}

我希望获得与验证相关的所有错误消息。 不幸的是,我找不到任何解决办法。

SOLUTION:

我找到了一个令人满意的解决方案

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

1 个答案:

答案 0 :(得分: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}) 
    });
  }
}