本文整理汇总了Golang中github.com/gorilla/mux.Route.HandlerFunc方法的典型用法代码示例。如果您正苦于以下问题:Golang Route.HandlerFunc方法的具体用法?Golang Route.HandlerFunc怎么用?Golang Route.HandlerFunc使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/gorilla/mux.Route
的用法示例。
在下文中一共展示了Route.HandlerFunc方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: SetContentHandler
func (d *LocationDirective) SetContentHandler(c api.Server, r *mux.Route) *mux.Route {
//
r = r.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
L := c.NewLuaState(w, r)
defer L.Close()
// if file, read once and set string
err := L.DoFile("test.lua")
// if string, set string
// if value in handler map, set handler
// if values in handler map, set handlers
if err != nil {
log.Error("server.request.lua", "path", r.URL, "error", err)
}
})
return r
}
示例2: Handle
func (self *Web) Handle(r *mux.Route, f func(c *HTTPContext) error) {
r.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
rw := &responseWriter{
ResponseWriter: w,
request: r,
start: time.Now(),
status: 200,
web: self,
}
for _, encoding := range strings.Split(r.Header.Get("Accept-Encoding"), ",") {
if strings.TrimSpace(encoding) == "gzip" {
rw.gzipWriter = gzip.NewWriter(rw.ResponseWriter)
rw.ResponseWriter.Header().Set("Content-Encoding", "gzip")
defer rw.Close()
break
}
}
var i int64
defer func() {
atomic.StoreInt64(&i, 1)
rw.log(recover())
}()
go func() {
time.Sleep(time.Second)
if atomic.CompareAndSwapInt64(&i, 0, 1) {
rw.inc()
}
}()
if err := f(self.GetContext(rw, r)); err != nil {
rw.WriteHeader(500)
fmt.Fprintln(rw, err)
self.Errorf("%v", err)
}
return
})
}