小编Roh*_*aji的帖子

在goLang中使用julienschmidt/httprouter时如何使用中间件?

使用julienschmidt/httprouter时连接中间件的最佳方法是什么?

就我用Google搜索而言,http.HandlerFunc只接受表单中的func (w ResponseWriter, r *Request)函数,而httprouter.Handle函数则是这种形式func (w http.ResponseWriter, r *http.Request, ps httprouter.Params).

如何在不将httprouter.Handle函数转换为http.HandlerFunc的情况下链接中间件?

例如:
我的routes.go是形式,

router  :=  httprouter.New()
router.POST("/api/user/create", middlewares.EscapeStringsMiddleware(User.CreateUser))
log.Fatal(http.ListenAndServe(":8000",  router))
Run Code Online (Sandbox Code Playgroud)

如何为上述路由编写中间件函数?

已经尝试过的方法:

1.

func EscapeStringsMiddleware(next http.Handler) httprouter.Handle {

    return func (response http.ResponseWriter, request *http.Request, ps httprouter.Params) {
        err := request.ParseForm()
        if err != nil {
            panic(err)
        }

        for key, values := range request.Form {
            for i, value := range values {
                value = template.HTMLEscapeString(value)
                value = template.JSEscapeString(value)
                request.Form[key][i] = value
            }
        }
        next.ServeHTTP(response, request) …
Run Code Online (Sandbox Code Playgroud)

middleware go

3
推荐指数
1
解决办法
3463
查看次数

标签 统计

go ×1

middleware ×1