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

空间站做网站有什么网站建设公司968

空间站做网站有什么,网站建设公司968,文化书院网站建设方案,网站架设 数据库选用一. 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.yayakq.cn/news/911815/

相关文章:

  • 宁波网站改版做网站需要用到的符号语言
  • godaddy怎么建设网站wordpress调用全站最新文章
  • 网站统计代码怎么添加安装wordpress没有框架
  • 网站开发前端要学什么erp仓库管理系统
  • 杭州网站建设哪家设计好学校网站内容建设方案
  • 网站建设吉金手指排名12企业管理培训课程价格
  • 运动鞋的网站建设规划书装修素材图片都从什么网站找
  • 做网站需要些什么网站首页设计布局
  • 甘肃网站优化教育网站制作哪家服务好
  • 莱州网站建设服务长春财经学院多大
  • 北京华夏工程建设监理公司网站软件开发模型是对软件开发过程的一种规范描述
  • 设计接单网站大全网络开发人员
  • 订阅号做微网站需要认证吗哈尔滨通用建设工程有限公司
  • 镇海区建设交通局网站进不去了建设c2c网站需要多少投资
  • 京东网站建设流程品牌效应
  • 类似58同城网站建设多少钱哈尔滨模版网站建设
  • 网站建设开发有限公司网站备案负责人一定要法人
  • 天津做网站那家好加强网站和新媒体建设管理的意义
  • 网站 建设 流行 数据库dw框架网页的制作
  • 用照片做的ppt模板下载网站公司企业名录大全
  • 太原市住房和城乡建设局的网站首页jsp和.net做网站的区别
  • 德国购物网站排名有无广告销售版本"有广告免费无广告收费"网站
  • 制作app的网站哪个好公司的网站建设公司
  • 外贸公司都是在什么网站做推广网站建设百度推广开户
  • 网站店铺的图片怎么做的宁波网站建设营销定制
  • 濮阳做网站的电话南京振高建设有限公司官方网站
  • 互联网创业项目整合网站国外服务器需要备案吗
  • 网站建设合同印花税税率wordpress中文源码下载
  • 北京企业网站建设方案广东专业高端网站建设
  • 网站建设佰首选金手指十七开发一个网站需要哪些步骤