我使用goapp serve
运行以下代码。从邮递员那里检查时出现404 page not found
错误。你能帮我解决一下吗
package hello
import (
"fmt"
"net/http"
"github.com/julienschmidt/httprouter"
)
func Index(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
fmt.Fprint(w, "Welcome!\n")
}
func Hello(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
fmt.Fprintf(w, "hello, %s!\n", ps.ByName("name"))
}
func init() {
router := httprouter.New()
router.GET("/", Index)
router.GET("/hello/:name", Hello)
//log.Fatal(http.ListenAndServe(":8080", router))
}
邮递员通过终点
http://localhost:8080/hello/hyderabad
答案 0 :(得分:1)
要扩展我上面的评论:
处理函数(或来自julienschmidt/httprouter
的路由器)不会自行注册。相反,它需要在http服务器上注册。
最简单的方法是使用以下命令注册默认的ServeMux:http.Handle("/", router)
因此,将init函数更改为以下内容将起作用:
func init() {
router := httprouter.New()
router.GET("/", Index)
router.GET("/hello/:name", Hello)
http.Handle("/", router)
}