1.写在前面
对于中间件的概念,一直不是特别清楚。但是今天写着程序,突然有些意识到中间件是干嘛的。
个人觉得可以把中间件看作一个第三方的代理。复杂的工作交给它去做。我们只需要拿到想要的结果就行。
2.看个例子:
1.自定义一个中间件
func myselfWare() gin.HandlerFunc {
return func(c *gin.Context) {
t := time.Now()
fmt.Println("自定义的中间件开始执行了.....")
// 设置值到上下文中
c.Set("psd","1234")
// 写入上下文的一个状态 【这里没有特别去查询,按照自己的理解来了】
status := c.Writer.Status()
fmt.Println("中间件执行完毕",status)
t2 := time.Since(t)
fmt.Println("time",t2)
}
}
2.使用中间件
r.Use(myselfWare())
{
r.GET("/test", func(c *gin.Context) {
// 取走中间件的值
req,_ := c.Get("psd")
fmt.Println("req",req)
c.JSON(200,gin.H{"psd":req})
})
}
3.结果:
经过上面这个例子,可以看出,我们可以在自定义的中间件中处理自己一些数据,然后去通过get方法获取这些数据。以实现相应的操作。
以上,就是本人对中间件浅显的认识。希望能给大家带来一定的启发。