{{docContent.title}}

中间件注册

参考:https://www.tizi365.com/archives/79.html

package main

import (
    "net/http"
    "github.com/labstack/echo"
)

//记录访问量
var totalRequests  = 0

//中间件函数
func Count(next echo.HandlerFunc) echo.HandlerFunc {
    return func(c echo.Context) error {
        //在这里处理拦截请求的逻辑
        //累计访问量
        totalRequests++

        //在响应头中输出访问量
        c.Response().Header().Add("requests", fmt.Sprintf("%d", totalRequests))

        //执行下一个中间件或者执行控制器函数, 然后返回执行结果
        return next(c)
    }
}

func main() {
    //初始化echo实例
    e := echo.New()
    //注册中间件
    e.Use(Count)

    e.GET("/", func(c echo.Context) error {
        return c.String(http.StatusOK, "Hello, World!")
    })

    e.Logger.Fatal(e.Start(":1323"))
}