当前位置: 首页 > news >正文

网站二维码特效烹饪考试试卷哪个网站可以做

网站二维码特效,烹饪考试试卷哪个网站可以做,在哪家网站可以买做服装的模具,信息流广告形式主要有在C/S架构下#xff0c;服务端在校验请求参数时#xff0c;若出现参数错误#xff0c;要响应给客户端一个错误消息#xff0c;通常我们会统一响应“参数错误”。 但是#xff0c;如果只是一味的提示参数错误#xff0c;我并不知道具体是哪个参数错了呀#xff01;能不能…在C/S架构下服务端在校验请求参数时若出现参数错误要响应给客户端一个错误消息通常我们会统一响应“参数错误”。 但是如果只是一味的提示参数错误我并不知道具体是哪个参数错了呀能不能有更详细更细致的提示信息例如账号错误、密码为空、姓名不能包含数字当然可以下面我来教你如何利用validator包实现自定义参数错误信息。 validator包下载 validator是开源的第三方包专门用于进行参数校验。我们先下载一下 github.com/go-playground/validator/v10 打上结构体标签 validator包提供了结构体标签选项我们可以为想要进行参数校验的字段打上标签之后就会以此标签作为校验标准。 进行参数校验 Struct方法会检验其参数s假设参数s为结构体是否符合结构体标签的标准上文提到的validate标签。若不符合标准则将具体不符合的情况作为err返回。 现在我们模拟一遍请求参数错误时的场景 package mainimport (fmtgithub.com/go-playground/validator/v10 )type RegisterModel struct {Username string validate:required,numeric // numeric 必须是数字Password string validate:required,alphanum // alphanum 必须是数字字母组合Name string validate:required // required 必须非空Age int validate:required,gte0,lte100,numeric // gte, lte 为最大最小值Gender string validate:required,oneof男 女 // oneof 必须为其中的某个值 }func main() {// 模拟客户端发来的请求参数model : RegisterModel{Username: 中文中文, // 故意让其不符合标准Password: 123哈哈哈,Name: ,}// 用validator包进行校验validate : validator.New() // 先new一个对象err : validate.Struct(model) // 通过对象调用Struct方法if err ! nil {fmt.Println(err)} } 打印错误信息可以发现其中包含了 不符合标准的字段 和 不符合标准的标签下文将其统称为错误字段、错误标签 有了这些信息就方便我们进行自定义参数信息了但是仅有这些还不够我们需要将这些信息各自提取到变量中。 将错误字段和错误标签提取出来 validator包里也给我们提供了方法我们先将得到的err断言成validator.ValidationErrors其本质是一个结构体切片结构体中包含了错误字段和错误标签。接着我们遍历该结构体即可拿到错误字段和错误标签。 // 将err中包含的字段和标签提取出来if validationErrors, ok : err.(validator.ValidationErrors); ok { // 将err断言for _, vErr : range validationErrors { // validationErrors 是一个结构体切片fmt.Println(vErr.StructField(), vErr.Tag()) // 打印得到的错误字段和错误标签}}实战如下 package mainimport (fmtgithub.com/go-playground/validator/v10 )type RegisterModel struct {Username string validate:required,numeric // numeric 必须是数字Password string validate:required,alphanum // alphanum 必须是数字字母组合Name string validate:required // required 必须非空Age int validate:required,gte0,lte100,numeric // gte, lte 为最大最小值Gender string validate:required,oneof男 女 // oneof 必须为其中的某个值 }func main() {// 模拟客户端发来的请求参数model : RegisterModel{Username: 中文中文,Password: 123哈哈哈,Name: ,}// 用validator包进行校验validate : validator.New()err : validate.Struct(model)if err ! nil {fmt.Println(err)// 将err中包含的字段和标签提取出来if validationErrors, ok : err.(validator.ValidationErrors); ok {for _, vErr : range validationErrors { // validationErrors 是一个结构体切片vErr.StructField()vErr.Tag()fmt.Println(vErr.StructField(), vErr.Tag())}}} } 现在我们有了错误字段和错误标签我们就可以自定义参数错误信息了。 自定义参数错误信息 这里我用的方法是我自创的比较土主要是在map中通过错误字段、错误标签映射到自定义的信息。 首先声明两个map 然后在遍历中通过map的映射关系获取到自定义信息。 实战 package mainimport (fmtgithub.com/go-playground/validator/v10 )type RegisterModel struct {Username string validate:required,numeric // numeric 必须是数字Password string validate:required,alphanum // alphanum 必须是数字字母组合Name string validate:required // required 必须非空Age int validate:required,gte0,lte100,numeric // gte, lte 为最大最小值Gender string validate:required,oneof男 女 // oneof 必须为其中的某个值 }// 错误标签map var tagMsg map[string]string{no-whitespace: 不能含有空格, // 键为结构体标签值为自定义的错误信息required: 不能为空,numeric: 必须是数字,alphanum: 只能包含字母和数字,oneof: 错误,lte: 超出限定范围,gte: 超出限定范围, }// 错误字段map var fieldMsg map[string]string{Username: 账号, // 键为字段名值为自定义的字段名信息Password: 密码,Name: 姓名,Age: 年龄,Gender: 性别,Permission: 权限, }func main() {// 模拟客户端发来的请求参数model : RegisterModel{Username: 中文中文,Password: 123哈哈哈,Name: ,}// 用validator包进行校验validate : validator.New()err : validate.Struct(model)if err ! nil {fmt.Println(err)// 将err中包含的字段和标签提取出来if validationErrors, ok : err.(validator.ValidationErrors); ok {for _, vErr : range validationErrors { // validationErrors 是一个结构体切片fmt.Println(fieldMsg[vErr.StructField()] tagMsg[vErr.Tag()])}}} }输出结果 至此我们就用validator包实现自定义参数错误信息。 感谢浏览如有不对欢迎指出。
http://www.w-s-a.com/news/287422/

相关文章:

  • 思途旅游网站建设系统用vscode做网站
  • 广州站改造最新消息半年工作总结ppt模板
  • logo模板下载网站推荐哪家网站开发培训好
  • 做外贸网站效果图页面关键词优化
  • 广平网站建设成都活动轨迹
  • 小型网站网站建设需要网络公司是什么行业
  • 滑动 手机网站 代码网页制作与设计讨论
  • 自己做网站处理图片用什么软件wordpress html5支持
  • 校园网站怎么建软文文案范文
  • 中国建设官方网站如何创建自己的软件
  • 来宾住房与城乡建设网站天津西青区怎么样
  • 西安网站建设培训班鄂州网页定制
  • 西部数码网站备份自己怎么做网站啊
  • h5网站开发用什么软件制作公司网站建设代理怎么做
  • 网站建设资料准备网上购物app有哪些
  • 沧州做网站优化哪家公司便宜国内百度云网站建设
  • 网站的最近浏览 怎么做龙岩市人才网最新招聘信息
  • 网站建设需要找工信部吗网站开发账务处理
  • 做那种的视频网站个体工商网站备案
  • 推广网官方推广网站中国建设招聘信息网站
  • 医院网站建设需要多少钱网络营销渠道可分为哪几种
  • 怎么取网页视频网站元素计算机专业论文网站开发
  • 上海网站建设备案号怎么恢复wordpress打开页面空白
  • 30个做设计的网站企业设计网站
  • 招生网站开发的背景创意 wordpress
  • 网站备案资料查询小型企业管理系统软件
  • 温州网站建设维护怎么做好网站开发、设计
  • 佛山 做网站公司有哪些网站排名忽然不见了
  • 广告网站建设最专业东莞大朗网站设计
  • 网站做流量的论坛贴吧分销商城系统源码