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

网站建设项目可行性asp.net 网站管理工具 安全

网站建设项目可行性,asp.net 网站管理工具 安全,汽车配件做外贸在哪个网站,天津交通网站建设gin框架内容#xff08;三#xff09;--中间件 Gin框架允许开发者在处理请求的过程中#xff0c;加入用户自己的函数。这个函数就叫中间件#xff0c;中间件适合处理一些公共的业务逻辑#xff0c;比如登录认证、权限校验、数据分页、记录日志、耗时统计等 即比如#x…gin框架内容三--中间件 Gin框架允许开发者在处理请求的过程中加入用户自己的函数。这个函数就叫中间件中间件适合处理一些公共的业务逻辑比如登录认证、权限校验、数据分页、记录日志、耗时统计等 即比如如果访问一个网页的话不管访问什么路径都需要进行登录此时就需要为所有路径的处理函数进行统一一个中间件 Gin中的中间件必须是一个gin.HandlerFunc类型   一、中间件的设置 1.1为路由单独注册中间件 package mainimport (fmtgithub.com/gin-gonic/ginnet/httptime )func indexHandler(c *gin.Context) {fmt.Println(index.....)c.JSON(http.StatusOK, gin.H{msg: index,}) }// 定义一个中间件 func m1(c *gin.Context) {fmt.Println(m1 in.........)start : time.Now()c.Next() //调用后续的处理函数,即indexHandler//Since是一个函数,传入的参数是(t Time),返回值是 Duration//Duration是一个自定义类型,即: type Duration int64cost : time.Since(start) //从开始时间到现在花费的时间fmt.Println(cost)fmt.Println(m1 out.........) }func main() {r : gin.Default()// m1处于indexHandler函数的前面,请求来之后,先走m1,再走indexr.GET(/index, m1, indexHandler)_ r.Run() }1.2为全局路由注册1个中间件 定义的全局中间件,下面的每个路由调用都是经过这个全局中间件 1.3为全局路由注册2个中间件【多个中间件也是这样的思路】 package mainimport (fmtgithub.com/gin-gonic/ginnet/httptime )func indexHandler(c *gin.Context) {fmt.Println(index.....)c.JSON(http.StatusOK, gin.H{msg: index,}) }// 定义一个中间件m1 func m1(c *gin.Context) {fmt.Println(m1 in.........)start : time.Now()c.Next()cost : time.Since(start)fmt.Println(cost)fmt.Println(m1 out.........) }// 定义一个中间件m2 func m2(c *gin.Context) {fmt.Println(m2 in.........)c.Next()fmt.Println(m2 out.........) } func main() {r : gin.Default()//确定中间件中间的关系r.Use(m1, m2)r.GET(/index, indexHandler)r.GET(/shop, func(c *gin.Context) {c.JSON(http.StatusOK, gin.H{msg: shop,})})r.GET(/user, func(c *gin.Context) {c.JSON(http.StatusOK, gin.H{msg: user,})})_ r.Run() }从上面的打印关系可以看出先通过第一个中间件M1的“ c.Next()的前半部分然后在到M2最后到index然后在执行c.Next()的后半部分 这就是一个中间件的链条 1.4中间件的后面路由停止执行 1.4.1终止执行1 package mainimport (fmtgithub.com/gin-gonic/ginnet/httptime )func indexHandler(c *gin.Context) {fmt.Println(index.....)c.JSON(http.StatusOK, gin.H{msg: index,}) }// 定义一个中间件 func m1(c *gin.Context) {fmt.Println(m1 in.........)start : time.Now()c.Next()cost : time.Since(start)fmt.Println(cost)fmt.Println(m1 out.........) }// 定义一个中间件 func m2(c *gin.Context) {fmt.Println(m2 in.........)c.Abort() //阻止调用后续的处理函数fmt.Println(m2 out.........) } func main() {r : gin.Default()r.Use(m1, m2)r.GET(/index, indexHandler)r.GET(/shop, func(c *gin.Context) {fmt.Println(1111)c.JSON(http.StatusOK, gin.H{msg: shop,})})r.GET(/user, func(c *gin.Context) {fmt.Println(222222222)c.JSON(http.StatusOK, gin.H{msg: user,})})_ r.Run() }因为m2中有个“ c.Abort() //阻止调用后续的处理函数 ”阻止后续内容执行到这里就是返回了根本执行不到后续路由信息 1.4.2终止执行2 return 1.5数据传递 在中间件里做一些操作然后在处理函数里拿到或者其它的中间件里拿到对应的数据 package mainimport (fmtgithub.com/gin-gonic/ginnet/httptime )func indexHandler(c *gin.Context) {fmt.Println(index.....)//Get是*Context的方法 传入的参数是(key string) ,返回值是(value interface{}, exists bool)name, ok : c.Get(name)if !ok {name 匿名用户}c.JSON(http.StatusOK, gin.H{msg: name,}) }// 定义一个中间件 func m1(c *gin.Context) {fmt.Println(m1 in.........)start : time.Now()c.Next()cost : time.Since(start)fmt.Println(cost)name, ok : c.Get(name)if !ok {name 匿名用户}fmt.Println(name)fmt.Println(m1 out.........) }// 定义一个中间件 func m2(c *gin.Context) {fmt.Println(m2 in.........)c.Set(name, tom)fmt.Println(m2 out.........) } func main() {r : gin.Default()r.Use(m1, m2)r.GET(/index, indexHandler)_ r.Run() }
http://www.dnsts.com.cn/news/8852.html

相关文章:

  • 怎么做网站服务器吗成色好的y31s标准版下载
  • 浏览器禁止网站怎么做宝安企业网站建设
  • 做网站域名服务器怎么做网站 先简单的聊一下
  • 杭州市建设信用网站时代创信网站建设
  • c mvc网站开发实例教程自己给公司做网站
  • 网站建设所需要的内容衡阳网站建设公司电话
  • 做旅游网站能成功深圳网络推广案例
  • 美容院网站模板集团网页建设
  • 鲅鱼圈网站怎么做庆阳手机网站设计
  • 网站导航条怎么做效果绿色网站配色
  • 备案的网站名称能重复备案吗移动互联网数据源分析
  • 广州专业网站建设企业关于做旅游网站的参考文献
  • 塑胶卡板东莞网站建设支持发布一个网站要多少钱
  • 古交做网站中国制造网内贸站
  • 南宁网站推广优化专业做网站推广
  • 网站关键词优化排名要怎么做关键字优化
  • 岳麓区专业的建设网站公司手机网站 域名
  • 做网站怎么选服务器wordpress 新建页面 所有文章
  • 长沙百度网站快速排名手机怎么自己做软件
  • 开公司怎么做网站wordpress升级无法创建目录
  • 电脑报价网站受欢迎的江苏网站建设
  • 做瞹瞹小视频网站工程承包去哪个网站
  • 邢台做网站服务商网站开发属于程序员吗
  • 太原网站优化方案wordpress 后台主题
  • 沈阳做网站一诚金网络专业wordpress批量发文章
  • 怎么网站网站开发的客户群体
  • seo网站内容网站用什么字体做正文
  • 无锡网站建设高端wordpress通知搜索引擎收录
  • 制作网站的手机软件石家庄工信部网站
  • 还有哪些行业可以做垂直网站修改WordPress写文章的模板