从邮递员检查时发现404页面未找到错误

时间:2017-12-26 09:19:15

标签: go routing google-cloud-platform gcp

我使用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

1 个答案:

答案 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)
    }