• 自定义中间件

    自定义中间件

    1. func Logger() gin.HandlerFunc {
    2. return func(c *gin.Context) {
    3. t := time.Now()
    4. // 设置 example 变量
    5. c.Set("example", "12345")
    6. // 请求前
    7. c.Next()
    8. // 请求后
    9. latency := time.Since(t)
    10. log.Print(latency)
    11. // 获取发送的 status
    12. status := c.Writer.Status()
    13. log.Println(status)
    14. }
    15. }
    16. func main() {
    17. r := gin.New()
    18. r.Use(Logger())
    19. r.GET("/test", func(c *gin.Context) {
    20. example := c.MustGet("example").(string)
    21. // 打印:"12345"
    22. log.Println(example)
    23. })
    24. // 监听并在 0.0.0.0:8080 上启动服务
    25. r.Run(":8080")
    26. }