記錄一次使用validate,並將驗證錯誤結果返回給前端
阿新 • • 發佈:2021-11-30
記錄一次使用validate,並將驗證錯誤結果返回給前端
1.資料庫模型
//視訊連結 資料庫模型欄位 //後續使用到的結構體 map type Video struct { gorm.Model ID string ` gorm:";primary_key"` Category string `json:"Category" gorm:";primary_key " validate:"required" ` //視訊分類 Title string `json:"Title" gorm:"" validate:"required" ` //視訊的標題 HeadImg string `json:"HeadImg" validate:"required" ` //視訊封面圖片的儲存地址 Content string `json:"Content" gorm:"" validate:"required" ` //視訊內容描述 CreatedAt time.Time UpdatedAt time.Time }
//獲取引數 //獲取前端傳過來 Category := c.PostForm("Category") Title := c.PostForm("Title") HeadImg := c.PostForm("HeadImg") Content := c.PostForm("Content") //資料驗證 video := &model.Video{ Category: Category, //傳入的文章分類ID Title: Title, //傳入的文章標題 HeadImg: HeadImg, //傳入文章的圖片 Content: Content, //傳入文章的內容 } validate := validator.New() err := validate.Struct(video) //err := //傳入繫結指標 if err != nil { c.JSON(200, gin.H{ "data": gin.H{ "err":fmt.Sprint(err), }, "meta": gin.H{ "msg": "資料驗證錯誤,請檢查文章資訊", "status": 400, }, }) return } // 獲取登入使用者(通過token,存在上下文中) // 插入資料 if err := common.DB.Create(&video).Error; err != nil { c.JSON(200, gin.H{ "data": gin.H{ "err": err, }, "meta": gin.H{ "msg": "資料寫入資料庫失敗", "status": 400, }}) return } // 成功 c.JSON(200, gin.H{ "data": gin.H{ "video": video, }, "meta": gin.H{ "msg": "建立視訊連結成功", "status": 200, }, }) }
捕捉錯誤返回給前端
validate := validator.New()
err := validate.Struct(video)
//err := //傳入繫結指標
if err != nil {
c.JSON(200, gin.H{
"data": gin.H{
"err":fmt.Sprint(err),
},
"meta": gin.H{
"msg": "資料驗證錯誤,請檢查文章資訊",
"status": 400,
},
})
return
}