多个Meteor.Error

时间:2014-07-22 08:20:02

标签: meteor

我只是想知道如何为我的验证字段抛出多个Meteor.Errors,例如

throw new Meteor.Error('403','Invalid Input','username Id');
throw new Meteor.Error('403','Too Short','password Id');

并将它们同时扔给客户。

2 个答案:

答案 0 :(得分:1)

我采取这样的方法:

var errors = [];
if (/* password is too short */) {
  errors.push("password is too short");
}
if (/* username is invalid */) {
  errors.push("username is invalid");
}
// ...

if (errors.length > 0) {
  throw new Meteor.Error(403, errors.join("; "));
}

答案 1 :(得分:1)

通过制作两个空数组来实现我想要的,在检测到错误时推送值,将它们包装起来扔到客户端并在客户端的 ERROR 回调中迭代这些值。

//SERVER
var reason=[],ids=[]; 

  if(error){
     reason.push('error details');
     ids.push('id of the element');
  }

 if(reason.length!==0){
   throw new Meteor.Error('403',reason,ids);
 }


//CLIENT
Accounts.createUser({foo:bar,boo:baz}, function(error){
  if(error){
  _.each(error.details,function(index,element){
        and there your client error code goes
    });
  }

});