0

我正在寻找一种方法来检索所有验证错误。(我正在使用 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');
4

1 回答 1

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}) 
    });
  }
}
于 2014-12-08T23:26:26.147 回答