2014-01-30 54 views
2

所以显示猫鼬的错误,我已经在那里我想用户如何骨干意见

this.model.save(user_details, { // this is backbone model 
       error: function (model, errors) { 

       }, 
       success: function (model, response) { 
       } 
      }); 

骨干示范urlRoot点保存到后台功能,其中

// here user is a Mongoose schema 
user.save(function (err) { 
    if (err) { 
     res.send(err.errors); 

    } 
}); 

我一个骨干视图我正在Mongoose模式中运行一些验证。

如果验证失败,我如何在主干视图上显示这些“err.errors”。 我可以看到在终端,如果我控制台登录错误,但不能发送他们回到意见。

回答

0

发现了解决方案通过“错误”找对象后,

All errors are returned in "errors.resposeText" which has format like 
{ 
    "key name": { 
    "message": "", 
    "name": "", 
    "path": "", 
    "type": "", 
    "value": "" 
} 
} 

this.model.save(user_details, { // this is backbone model 
      error: function (model, errors) { 
       var err = JSON.parse(errors.responseText); 
       $.each(errors, function (name, err) { 
        // do something with error 
        console.log(name + err.message); 
       } 


      }, 
      success: function (model, response) { 
      } 
     }); 

注:从喜欢独特,DUP键MongoDB的错误在这种格式不追加。所以它决定了我们将它们改为json并将其包含在res.errors中。

In case of error in unique keys user.save(function (err) { 

    if (err) { 
     if(err.code!='undefined' && err.code=='11000') 
      err.errors = {'email':{'message':'This unique value is already in db'}}; 
     res.send(500, err.errors); 
    }