2016-06-28 41 views
0

我是Golang的新手,我正在嘗試學習如何進行高效路由。例如,我有一個控制器文件夾/目錄,並在該控制器內,我想擁有不同的Func /方法與他們自己的唯一路線,但我不知道該怎麼做。我已經下載了github.com/gorilla/mux包和我的應用程序看起來像這樣 enter image description hereGolang在不同的控制器中路由

我的應用程序的主要部分是這樣的,它是可以正常使用:tim.go

package main 

import(
    "net/http" 
    "fmt" 
    "github.com/gorilla/mux" 
) 


func HomeHandler(writer http.ResponseWriter, req *http.Request) { 
    writer.WriteHeader(200) 
    fmt.Fprintf(writer, "Home!!!\n") 
} 
func main() { 
    r := mux.NewRouter() 
    r.HandleFunc("/home", HomeHandler).Name("bob") 
     http.Handle("/",r) 
    http.ListenAndServe(":8000", nil) 
} 

問題是我如何獲取我的控制器文件中的func/methods以顯示在瀏覽器上。我sample.go文件沒有在瀏覽器中顯示,當我去到URL

package Controllers 



import(
    "net/http" 
    "fmt" 
    "github.com/gorilla/mux" 
) 


func HomeHandler(writer http.ResponseWriter, req *http.Request) { 
    writer.WriteHeader(200) 
    fmt.Fprintf(writer, "New Home") 
} 
func main() { 
    r := mux.NewRouter() 
    r.HandleFunc("/new", HomeHandler).Name("bob") 
    http.Handle("/",r) 
    http.ListenAndServe(":8000/new", nil) 
} 

當我進入我的瀏覽器並輸入本地主機:8000 /新它說找不到文件。任何建議將是偉大的

回答

1

我想你運行tim.go文件啓動服務器。

如果是這樣,問題是你沒有路由你打電話/new,你應該有一個與/home答案。

要做到這一點,你應該將HomeHandler函數移動到Controllers包,然後在主廣告中導入這個包來實例化你需要的路由。

希望這會有所幫助。

+0

非常感謝你的工作 – user1591668