七课用golang封装自己web框架nux:第二课,封装nux结构体 | go 技术论坛-380玩彩网官网入口
学习gin 和 gee 的封装方法,我们创建nux结构体
nux.go
创建nux结构体,封装*http.servemuxpackage nux import "net/http" type nux struct { mux *http.servemux } func new() *nux { return &nux{ mux: http.newservemux(), } } func (n *nux) handlefunc(router string, handle func(http.responsewriter, *http.request)) { n.mux.handlefunc(router, handle) } func (n *nux) start(addr string) error { return http.listenandserve(addr, n.mux) }
nux_test.go
func testhttp(t *testing.t) { n := new() n.handlefunc("post /api/test", helloworld()) n.start(":8000") } func helloworld() func(http.responsewriter, *http.request) { return func(w http.responsewriter, r *http.request) { log.println("test 3") data := map[string]interface{}{ r.method: r.url.path, } w.header().set("content-type", "application/json") w.writeheader(http.statusok) encoder := json.newencoder(w) if err := encoder.encode(data); err != nil { http.error(w, err.error(), http.statusinternalservererror) } } }
访问
终端打印:
test 3
前端显示:
{ "post": "/api/test" }
本作品采用《cc 协议》,转载必须注明作者和本文链接