文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Tips and Tricks
Wrap a http.HandlerFunc closure
Sometimes you want to pass data to a http.HandlerFunc on initialization. This can easily be done by creating a closure of the http.HandlerFunc
:
func MyHandler(database *sql.DB) http.Handler {
return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
// you now have access to the *sql.DB here
})
}
Using gorilla/context
for request-specific data
It is pretty often that we need to store and retrieve data that is specific to the current HTTP request. Use gorilla/context
to map values and retrieve them later. It contains a global mutex on a map of request objects.
func MyHandler(w http.ResponseWriter, r *http.Request) {
val := context.Get(r, "myKey")
// returns ("bar", true)
val, ok := context.GetOk(r, "myKey")
// ...
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论