Я использую GORM с MySQL, я обнаружил и обработал ошибку Error 1062: Duplicate entry
.Проблема в том, что он все еще выводится на консоль.
Код в gym/models/auth.go:49
:
func AddAuth(username, password string) error {
passwordHash, err := auth.HashPassword(password, argon2Conf)
if err != nil {
return err
}
userAuth := Auth{
Username: username,
Password: passwordHash,
}
return db.Create(&userAuth).Error
}
Я обрабатываю ошибку в функции обработчика:
func SignUpHandler(c *gin.Context) {
var form user
if err := c.ShouldBind(&form); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
if err := models.AddAuth(form.Username, form.Password); err == nil {
c.JSON(http.StatusOK, gin.H{"status": "you are signed in"})
} else {
// I think I have handled the sql error here
c.JSON(http.StatusBadRequest, gin.H{"error": "sign in failed"})
}
}
Когда я отправляю запрос POST
, ошибка корректно обрабатывается, и я получаю правильный ответ с помощью {"error": "sign in failed"}
.Но консоль все еще печатает это сообщение об ошибке:
(/...../gym/models/auth.go:49)
[2019-04-28 23:37:06] Error 1062: Duplicate entry '123123' for key 'username'
[GIN] 2019/04/28 - 23:37:06 | 400 | 136.690908ms | ::1 | POST /signup
Я сбит с толку, так как обработал ошибку, но она все еще печатается.Как предотвратить печатание этой ошибки в журнале ошибок?Или я исправляю ошибку правильно?