Go基礎學習記錄 - 編寫Web應用程式 - 重新調整項目目錄結構(二)

來源:互聯網
上載者:User

轉載
Go基礎學習記錄 - 編寫Web應用程式 - 重新調整項目目錄結構(二)
上篇文章整理了一部分的檔案結構,本次再將剩餘的一部分也處理下,其實很小的一部分,

將main中makeHandler函數處理掉,封裝到我們看起來還算比較方便的歸類中,建立檔案

helpers/handler.go

package helpersimport (    "net/http"    "regexp")var validPath = regexp.MustCompile("^/(edit|save|view)/([a-zA-Z0-9]+)$")// MakeHandler 處理路由函數func MakeHandler(fn func(http.ResponseWriter, *http.Request, string)) http.HandlerFunc {    return func(w http.ResponseWriter, r *http.Request) {        // 這裡我們將從Request中提取頁面標題,並調用提供的處理常式'fn'        m := validPath.FindStringSubmatch(r.URL.Path)        if m == nil {            http.NotFound(w, r)            return        }        fn(w, r, m[2])    }}

這裡說下我對go看法,其實go的機制並沒有很完善,包管理其實一直是個大問題,按照我們正常的編寫邏輯來說,應該不能像java之類的,先要編譯完再運行,發現問題其實也需要一步一步去找,很頭痛,這也是是為什麼最近ReactNative一直很火的原因,熱編譯暖開機熱更新,都是為了我們的開發效率。然鵝go也是,雖然效能很好,但是包跟包之間的依賴似乎並不是很友好,我這裡暫時按照自己的理解來,後面發現更可用的再進行更新。

下面修改main.go,引入我們需要的helper,main.go修改後的代碼如下

package mainimport (    "log"    "net/http"    "github.com/durban89/wiki/controllers"    "github.com/durban89/wiki/helpers")func main() {    http.HandleFunc("/view/", helpers.MakeHandler(controllers.ArticleView))    http.HandleFunc("/save/", helpers.MakeHandler(controllers.ArticleSave))    http.HandleFunc("/edit/", helpers.MakeHandler(controllers.ArticleEdit))    log.Fatal(http.ListenAndServe(":8090", nil))}

是不是感覺清爽了很多。

下面再次進行編譯並運行項目,項目正常啟動運行正常。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.