package main
import (
"github.com/gin-gonic/gin"
"log"
"net/http"
"time"
)
//中间件就是一个钩子函数
func StatCost() gin.HandlerFunc{
return func(c *gin.Context) {
t := time.Now()
//设置公共参数
c.Set("username","test")
//等其他中间件先执行
c.Next() //其他中间件执行完,这里在返回
//获取耗时
latency := time.Since(t)
log.Printf("user time: %d us\n",latency)
}
}
func main() {
//e := gin.New() //这种方式新创建(路由引擎)没有加载任何中间件
e := gin.Default() //默认加载了日志打包和错误中间件
e.Use(StatCost()) //加载自定义的中间件
e.GET("/test", func(c *gin.Context) {
username := c.MustGet("username").(string)
log.Println("username",username)
c.JSON(http.StatusOK,gin.H{
"status":"success",
"username":username,
})
})
e.Run(":9090")
}
gin自定义一个中间并加载使用它
最新推荐文章于 2022-05-16 19:54:09 发布