我正在使用Cognito Javscript SDK,我创建了一个用户可以注册帐户的表单。如果由于某种原因,服务器端验证失败,响应如下所示:
{
"__type":"InvalidParameterException",
"message":"4 validation errors detected: Value at 'password' failed to satisfy constraint: Member must have length greater than or equal to 6; Value at 'password' failed to satisfy constraint: Member must satisfy regular expression pattern: [\\S]+; Value at 'username' failed to satisfy constraint: Member must have length greater than or equal to 1; Value at 'username' failed to satisfy constraint: Member must satisfy regular expression pattern: [\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+"
}
此响应的问题在于我无法提供良好的用户反馈,因为我必须解析响应以确定需要修复哪些字段。有没有办法以更好的方式以编程方式恢复错误?
答案 0 :(得分:1)
目前执行此操作的最佳方法是以编程方式获取值,方法是在'之后删除子字符串。
我还没有一个可能有助于这样做的图书馆的例子,但这是很好的反馈。
答案 1 :(得分:0)
以防万一有人在这个年龄段绊倒,答案是使用response.code:
this.cognitoUser.forgotPassword({
onSuccess: (data) => {
},
onFailure: (data) => {
console.log(data)
/*
{
"__type":"InvalidParameterException",
"message":"4 validation errors etc"
}
*/
console.log(data.code)
/*
"InvalidParameterException"
*/
}
})
答案 2 :(得分:0)
您必须首先json字符串化,然后json解析对象以获取值。
尝试使用以下示例代码-
var errorObj = JSON.parse(JSON.stringify(data));
console.log(errorObj.statusCode);