我只是想知道如何为我的验证字段抛出多个Meteor.Errors,例如
throw new Meteor.Error('403','Invalid Input','username Id');
throw new Meteor.Error('403','Too Short','password Id');
并将它们同时扔给客户。
答案 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
});
}
});