在go语言中使用Denco包实现多路复用器实例
今天有点空,想测试一下Golang的几个网络复用器,我试过的最有趣的复用器之一是Denco包,它的使用相当简单,你可以通过denco.Params轻松获得发布的值。
用[]denco.Record类型也可以很容易地根据URL路径模式重定向到不同的函数。
见http://godoc.org/github.com/naoina/denco#Record
这个例子将集中在Denco的多路复用器部分,它是从下面denco包中例子并稍作修改。
https://github.com/naoina/denco
示例代码:
package main
import (
"fmt"
"github.com/naoina/denco"
"net/http"
)
func Home(w http.ResponseWriter, r *http.Request, params denco.Params) {
w.Write([]byte("Hello, World!"))
}
func HelloUser(w http.ResponseWriter, r *http.Request, params denco.Params) {
w.Write([]byte(fmt.Sprintf("Hello, %s!", params.Get("name"))))
}
func main() {
mx := denco.NewMux()
handler, err := mx.Build([]denco.Handler{
mx.GET("/", Home),
mx.GET("/hellouser/:name", HelloUser),
mx.POST("/hellouser/:name", HelloUser),
})
if err != nil {
panic(err)
}
http.ListenAndServe(":8080", handler)
}
输出:
http://localhost:8080/hellouser/Zongscan
Hello, Zongscan
相关文章