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

帝国企业网站源码凡科建站官网登录

帝国企业网站源码,凡科建站官网登录,企业微信官网登录入口网页版,iis添加网站一. Controller 用不同的Controller可以实现业务的分类,不同类型的请求可以共用同一套中间件 1.1 单文件Controller 几乎等同于函数封装,直接将ctrl的代码写入到一个文件里然后调用: package adminimport ("net/http""git…

一. Controller

用不同的Controller可以实现业务的分类,不同类型的请求可以共用同一套中间件

1.1 单文件Controller

几乎等同于函数封装,直接将ctrl的代码写入到一个文件里然后调用:

package adminimport ("net/http""github.com/gin-gonic/gin"
)func Index(ctx *gin.Context) {ctx.String(http.StatusOK, "首页")
}

调用:

package mainimport ("kanna-web/controller/admin""github.com/gin-gonic/gin"
)func main() {r := gin.Default()r.GET("/", admin.Index)r.Run(":80")
}

1.2 Controller类与继承

这个和类的写法也是一样的:

package adminimport ("net/http""github.com/gin-gonic/gin"
)type UserController struct {
}type AdminController struct {UserController
}func (c AdminController) Index(ctx *gin.Context) {ctx.String(http.StatusOK, "首页")
}func (c AdminController) Page(ctx *gin.Context) {ctx.String(http.StatusOK, "Page")
}

调用:

package mainimport ("kanna-web/controller/admin""github.com/gin-gonic/gin"
)func main() {r := gin.Default()r.GET("/", admin.AdminController{}.Index)r.GET("/page/", admin.AdminController{}.Page)r.Run(":80")
}

二. 中间件

中间件就是在RouterController之间可以执行的代码,可以给单个路由添加,也可以路由组添加,也可以全局添加。

2.1 Default or New

在我们创建路由的时候,是gin.Default(),即包含了:LoggerRecover这两个中间件。
如果不需要使用者两个中间件可以gin.New()
中间件可以拿来鉴权等各种功能。

2.2 中间件的使用

最基本的形式:

func baseMid(ctx *gin.Context) {fmt.Println("我进入了中间件")
}func main() {r := gin.Default()r.GET("/", baseMid, admin.AdminController{}.Index)r.Run(":80")
}

在这里插入图片描述
路由组:

func main() {r := gin.Default()v1 := r.Group("/v1", baseMid){v1.GET("/login", func(ctx *gin.Context) {ctx.String(http.StatusOK, "Success")})}r.Run(":80")
}
// or v1.Use(baseMid)

全局:

func main() {r := gin.Default()r.Use(baseMid)v1 := r.Group("/v1"){v1.GET("/login", func(ctx *gin.Context) {ctx.String(http.StatusOK, "Success")})}r.Run(":80")
}

2.3 Next()和Abort()

Next()可以先执行Control的内容,再返回到Next()处:

func baseMid(ctx *gin.Context) {fmt.Println("我进入了")ctx.Next()fmt.Println("我离开了")
}func main() {r := gin.Default()r.Use(baseMid)r.GET("/", func(ctx *gin.Context) {fmt.Println("我显示了")ctx.String(http.StatusOK, "Success")})r.Run(":80")
}

在这里插入图片描述
Abort()可以结束Controller的行为:

func baseMid(ctx *gin.Context) {fmt.Println("我进入了")ctx.Abort()fmt.Println("我离开了")
}func main() {r := gin.Default()r.Use(baseMid)r.GET("/", func(ctx *gin.Context) {fmt.Println("我显示了")ctx.String(http.StatusOK, "Success")})r.Run(":80")
}

在这里插入图片描述
在这里插入图片描述

2.4 多中间件顺序

func Mid1(ctx *gin.Context) {fmt.Println("中间件1进入")ctx.Next()fmt.Println("中间件1离开")
}func Mid2(ctx *gin.Context) {fmt.Println("中间件2进入")ctx.Next()fmt.Println("中间件2离开")
}func main() {r := gin.Default()r.Use(Mid1, Mid2)r.GET("/", func(ctx *gin.Context) {fmt.Println("我显示了")ctx.String(http.StatusOK, "Success")})r.Run(":80")
}
/*
中间件1进入
中间件2进入
我显示了
中间件2离开
中间件1离开
*/
func Mid1(ctx *gin.Context) {fmt.Println("中间件1进入")ctx.Abort()fmt.Println("中间件1离开")
}func Mid2(ctx *gin.Context) {fmt.Println("中间件2进入")ctx.Next()fmt.Println("中间件2离开")
}func main() {r := gin.Default()r.Use(Mid1, Mid2)r.GET("/", func(ctx *gin.Context) {fmt.Println("我显示了")ctx.String(http.StatusOK, "Success")})r.Run(":80")
}
/*
中间件1进入
中间件1离开
*/

2.5 中间件与Control共享数据

可以用set*get*等函数,例如:

func Mid1(ctx *gin.Context) {ctx.Set("uid", "kanna")
}func main() {r := gin.Default()r.Use(Mid1)r.GET("/", func(ctx *gin.Context) {uid := ctx.GetString("uid")ctx.String(http.StatusOK, uid)})r.Run(":80")
}
http://www.ritt.cn/news/23519.html

相关文章:

  • 国外网站国内做好还是国外做谷歌网站
  • pc端和手机端网站建设网页分析工具
  • 济南网站建设培训学校深圳百度总部
  • 帮做图标的网站seo关键词分析表
  • 公司网站开发联系方式谷歌浏览器下载
  • 广州建设工程交易中心主任搜索引擎快速优化排名
  • 企业手机网站建设教程百度推广电话客服24小时
  • 17做网站 一件代发百度营销网页版
  • 网站备案查询 api浙江企业seo推广
  • 建设网站制作自己怎么开发app软件
  • 做音乐网站要求网站怎么做出来的
  • 国防教育网站建设说明书搜狗收录入口
  • 美工素材网站seo要点
  • 广州建网站价格百度竞价推广运营
  • 黑龙江网站建设工作室山西优化公司
  • 网站独立ip如何做301重定向免费网络空间搜索引擎
  • 公司网站建设的工具网站策划是做什么的
  • 论坛网站建设方案推广网
  • 怎样安装网站模板seo培训机构
  • 做爰直播网站网络推广员要怎么做
  • 焦作做网站的114网址大全
  • 哪个网站做螺丝生意好百度小说排行榜2020
  • 天津做网站制作公司百度风云榜电视剧排行榜
  • web.py网站开发图片个人发布信息免费推广平台
  • 北京南站官网整合网络营销
  • 马云之前做的网站精准推广引流5000客源
  • 建站程序选择湖南株洲疫情最新情况
  • 响应式旅游网站模板下载seo导航站
  • 微网站难做么深圳网站建设维护
  • wordpress 图片环绕建设优化网站