ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

记录一次使用validate,并将验证错误结果返回给前端

2021-11-30 11:32:42  阅读:170  来源: 互联网

标签:Category err Title 前端 验证 video gin validate


记录一次使用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
	}

标签:Category,err,Title,前端,验证,video,gin,validate
来源: https://www.cnblogs.com/chengqiang521/p/15623443.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有