簡體   English   中英

為什么golang go-gin錯誤總是返回空object

[英]Why golang go-gin error always returning empty object

我試圖在 gin golang 中解析錯誤驗證,但生成一個空的 object“{}”

這是我的第一次嘗試:

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": ""
    }
}

在發布為json響應時,您應該嘗試err.Error()而不是err

嘗試這個 :

resp, err := userService.UserRegistrationService(c)

if err != nil {
    c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
    return
}

如何在沒有空返回的情況下使用它?

resp, err := userService.UserRegistrationService(c)

if err != nil {
  c.JSON(http.StatusBadRequest, gin.H{
    "error": err.Error()
  })

  return

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM