我正在使用 EPF 开发一个项目,并且在处理因服务器上的验证错误而失败的资源时遇到了麻烦。
我正在创建一个新的用户注册页面,它需要一个电子邮件地址、登录名和密码,并要求服务器通过 REST API 创建一个新的用户记录。
当验证失败时,服务器在 JSON 响应中返回带有错误哈希的 422。
首先,我尝试使用session.flush
promise 来访问响应正文:
registerNewUser: ->
onSuccess = (models)=>
newUser = @get('content')
@transitionToRoute('user', newUser)
onFailure = (response)->
debugger
@session.flush().then(onSuccess, onFailure)
传递给拒绝操作的response
参数实际上包含一个异常(在我的情况下:“TypeError:无法调用未定义的方法'toString'”。调查堆栈表明它是来自 EPF 深处的异常 - 我很确定这是一个错误,但我需要做更多的挖掘来确认这一点。
“好吧,”我想。“我会阅读 EPF 的来源”。
我遇到了https://github.com/GroupTalent/epf/blob/master/lib/rest/rest_adapter.js#L267,当 jQuery AJAX 承诺拒绝时,它似乎会触发。它对 422 进行了特定测试,并尝试解析 JSON 有效负载并将其(以及一堆其他有用信息)附加到errors
属性上的模型。但是,我新创建的用户模型也没有错误属性。
目前几乎处于死胡同。有谁知道我应该在哪里完成这项工作?