go - 为什么golang go-gin错误总是返回空对象
问题描述
我试图在 gin golang 中解析错误验证,但产生一个空对象“{}”
这是我的第一次尝试:
resp, err := userService.UserRegistrationService(c)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err})
return
}
返回:
{
"error": [
{},
{}
]
}
这是我的第二次尝试:
resp, err := userService.UserRegistrationService(c)
if err != nil {
dada := fmt.Errorf("%v", err)
c.JSON(http.StatusBadRequest, dada)
return
}
返回
{}
看看我是否调试了 err 参数:
resp, err := userService.UserRegistrationService(c)
fmt.Println(err)
if err != nil {
dada := fmt.Errorf("%v", err)
fmt.Println(dada)
c.JSON(http.StatusBadRequest, dada)
return
}
它的回报:
2020/11/10 12:41:46 stdout: Key: 'User.Email' Error:Field validation for 'Email' failed on the 'required' tag
2020/11/10 12:41:46 stdout: Key: 'User.Password' Error:Field validation for 'Password' failed on the 'required' tag
你们能帮我吗,尝试在任何地方搜索仍然没有运气,我想像这样返回:
{
"MyRequestStruct.PropertyOne": {
"FieldNamespace": "MyRequestStruct.PropertyOne",
"NameNamespace": "PropertyOne",
"Field": "PropertyOne",
"Name": "PropertyOne",
"Tag": "required",
"ActualTag": "required",
"Kind": 24,
"Type": {},
"Param": "",
"Value": ""
},
"MyRequestStruct.PropertyTwo": {
"FieldNamespace": "MyRequestStruct.PropertyTwo",
"NameNamespace": "PropertyTwo",
"Field": "PropertyTwo",
"Name": "PropertyTwo",
"Tag": "required",
"ActualTag": "required",
"Kind": 24,
"Type": {},
"Param": "",
"Value": ""
}
}
解决方案
您应该尝试err.Error()
而不是err
在作为json
响应发布时尝试。
尝试这个 :
resp, err := userService.UserRegistrationService(c)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
推荐阅读
- datastage - 在datastage中有什么方法可以将isuser(项目的用户名)获取到目标表(在用户列中)
- javascript - 将子项多次附加到其父项 onclick
- sql - 您可以将 BigQuery 的 PARSE_TIMESTAMP 函数应用于整个字段吗?
- wordpress - 如何安排结帐表单字段
- python - Django - Apache2 无法从媒体文件夹加载媒体文件
- c++ - 对C++类中的每个成员变量访问加一个读写对象锁,实现同步
- angular - 为什么 CMD ["npm", "start"] 在 Dockerfile 中不起作用?
- reactjs - 如何在回调中发送响应
- r - 为另一列中的每个组设置固定数量的值的子集
- maven - Pitest 报告聚合目标抱怨传递依赖