go语言的成神之路-筑基篇-中间件

目录

单个Gin中间件

中间件简要概述

一、中间件的定义:

二、中间件的使用:

效果展示

多个Gin中间件

示例

Abort阻止后续处理函数

执行流程图

return直接返回

执行流程图

全局注册中间件

注意事项


单个Gin中间件

中间件简要概述

gin 框架中,中间件是一个非常重要的概念,它可以在请求处理的不同阶段执行一些额外的操作,例如日志记录、权限验证、性能统计等。以下是关于 gin 中间件的简要概述:

一、中间件的定义

中间件是一个函数,它接收一个 *gin.Context 对象作为参数,并且可以在处理请求之前、之后或在请求处理过程中执行一些操作。中间件函数可以修改请求或响应,也可以终止请求的处理。

二、中间件的使用

  • 全局中间件 :使用 r.Use() 方法将中间件应用到所有的路由上。
  • 局部中间件 :在路由定义时,使用 r.GET("/path", middleware1, middleware2, handler) 这样的方式将中间件应用到特定的路由上。

这里以全局中间件为例子进行讲解。

这一中间件m1是用来进行计时操作的,可以用Use来进行全局注册。

这一例子中对三个GET请求做出相应的中间件的基本使用。

效果展示

多个Gin中间件

当有多个中间件时会按照如图所示的情况进行一步一步的执行。

执行顺序如图所示

示例

m1和m2全都是全局中间件。

控制台中的效果如下:

Abort阻止后续处理函数

执行流程图

在m2函数中调用Abort会阻止后续处理函数

可以看出并没有执行index中的操作

前端页面中也是空白的

return直接返回

执行流程图

不难看出m2 out并没有执行,同样的前端页面也是什么都没有

全局注册中间件

先定义了一个用于校验的函数,当doCheck为true的时候执行。

在m2函数中Set了一个姓名-VON

在indexHandler函数中调用m2中传入的name

设置doCheck的值为true,调用indexHandler函数。

命令台效果

前端页面效果

注意事项

相关推荐
ZC跨境爬虫14 分钟前
跟着 MDN 学 HTML day_52:(深入 XPathExpression 接口)
开发语言·前端·javascript·ui·html·音视频
程序员cxuan25 分钟前
看了一下姚顺宇的访谈,确实太顶了。
人工智能·后端·程序员
yuanpan30 分钟前
Python + Selenium 浏览器自动化测试与网页自动登录
开发语言·python·selenium
Wy_编程32 分钟前
Go语言中的指针
开发语言·后端·golang
GetcharZp42 分钟前
RabbitMQ 深度全解析,从 Docker 部署到 Go 语言高并发实战!
后端
不想写代码的星星1 小时前
C++协程从入门到放弃?不,是从入门到手搓调度器
开发语言·c++
lolo大魔王1 小时前
Go语言数据库操作之GORM框架从入门到生产实战(完整版)
开发语言·数据库·golang
cndes1 小时前
Pycharm的虚拟环境设置问题
开发语言·python
河阿里1 小时前
Java包装类(Wrapper):自动装箱拆箱机制与类型转换的那些坑
java·开发语言
小江的记录本1 小时前
【AI大模型选型指南】《2026年5月(最新版)国内外主流AI大模型选型指南》(企业版)
前端·人工智能·后端·ai作画·aigc·ai编程·ai写作