gpt4 book ai didi

go - 如何将参数传递给 Go 中的 alice 中间件?

转载 作者:数据小太阳 更新时间:2023-10-29 03:05:30 25 4
gpt4 key购买 nike

我正在使用 justinas/alice Go 中的中间件,我想将参数传递给中间件中使用的函数。

例如:

middlewareChain := alice.New(Func1(foo string,foo2 string))

我该怎么做?

最佳答案

Motakjuq 所述,您不能直接编写将选项作为参数的中间件,因为它们需要具有签名 func (http.Handler) http.Handler

您可以做的是创建一个函数来生成您的中间件函数。

func middlewareGenerator(foo, foo2 string) (mw func(http.Handler) http.Handler) {

mw = func(h http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// Use foo1 & foo2
h.ServeHTTP(w, r)
})
}
return
}

然后你可以进行以下操作

middlewareChain := alice.New(middlewareGenerator("foo","foo2"))

关于go - 如何将参数传递给 Go 中的 alice 中间件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40970343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com