处理 Ember 数据 JSON-API 适配器不工作的错误
Handling errors with Ember Data JSON-API adapter not working
我在使用 JSON-API 处理错误时遇到问题,我按照文档中的说明完成了所有步骤,但它不起作用。
我有型号:
var user = this.get('store').createRecord('user', {
'email': 'test@test.com',
'name': 'Lorem ipsum',
'password': '123',
});
user.save().then(function(){
...
}).catch(function(data){
console.log(user.get('errors'), data);
// data is ErrorClass with deserialize errors inside
});
和API响应(422 Unprocessable Entity
):
{
"errors":[
{
"detail":"Email address must be between 6 and 128 characters in length",
"source":{
"pointer":"/data/attributes/password"
}
}
]
}
在这种情况下 isError
标志是 false
, user.get('errors')
-> empty
我也试过用 500 Internal Server Error
代码回复
在这种情况下,isError
标志是 true
(正如预期的那样)并且错误对象包含在 adapterError
中
所以我做错了什么或尝试检查什么,
提前致谢
至于 isError
标志,如果您遇到验证错误(具有 422 代码的那个),则它不应该是 true
。 docs.
中对此进行了描述
你的主要问题是开头有一个多余的正斜杠。所以你必须把这个"pointer":"/data/attributes/password"
改成这个"pointer":"data/attributes/password"
此更改后,您将能够通过 user.get('errors.password');
获得此 属性 的错误
希望对您有所帮助!
我在使用 JSON-API 处理错误时遇到问题,我按照文档中的说明完成了所有步骤,但它不起作用。
我有型号:
var user = this.get('store').createRecord('user', {
'email': 'test@test.com',
'name': 'Lorem ipsum',
'password': '123',
});
user.save().then(function(){
...
}).catch(function(data){
console.log(user.get('errors'), data);
// data is ErrorClass with deserialize errors inside
});
和API响应(422 Unprocessable Entity
):
{
"errors":[
{
"detail":"Email address must be between 6 and 128 characters in length",
"source":{
"pointer":"/data/attributes/password"
}
}
]
}
在这种情况下 isError
标志是 false
, user.get('errors')
-> empty
我也试过用 500 Internal Server Error
代码回复
在这种情况下,isError
标志是 true
(正如预期的那样)并且错误对象包含在 adapterError
所以我做错了什么或尝试检查什么, 提前致谢
至于 isError
标志,如果您遇到验证错误(具有 422 代码的那个),则它不应该是 true
。 docs.
你的主要问题是开头有一个多余的正斜杠。所以你必须把这个"pointer":"/data/attributes/password"
改成这个"pointer":"data/attributes/password"
此更改后,您将能够通过 user.get('errors.password');
希望对您有所帮助!