第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 Gorilla / Mux 中反轉(zhuǎn)子路由器

在 Gorilla / Mux 中反轉(zhuǎn)子路由器

Go
狐的傳說(shuō) 2021-09-13 10:34:11
我想獲取命名子路由的路徑,但我下面的代碼不起作用。當(dāng)我嘗試在非子路由上使用相同的邏輯時(shí),它工作正常。如何獲取命名子路由的路徑?router = mux.NewRouter() // this is a global variablehome := router.Path("/home").Subrouter()home.Methods("GET").HandlerFunc(c.GetHomeHandler).Name("home")home.Methods("POST").HandlerFunc(c.PostHomeHandler)p, err := router.Get("home").URL()if (err != nil) { panic (err) }log.Printf(p.Path)上面給出了這個(gè)錯(cuò)誤:panic: mux: route doesn't have a host or path現(xiàn)在如果我這樣做了 router.HandleFunc("/home", c.GetHomeHandler).Name("home"),它工作得很好。感謝你的幫助。更新:這是一個(gè)合理的解決方法,但它避免了創(chuàng)建子路由。對(duì)于我上面的示例來(lái)說(shuō)很好,但可能并不理想,因?yàn)槟鷮o(wú)法獲得 Subroute 的所有好處。router.Path("/home").Methods("GET").HandlerFunc(c.GetHomeHandler).Name("home")router.Path("/home").Methods("POST").HandlerFunc(c.PostHomeHandler)
查看完整描述

1 回答

?
烙印99

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊

我相信你需要用 PathPrefix 指定你的子路由,然后為了支持 /home 和 /home/ 啟用 StrictSlash (由于這個(gè)問(wèn)題)


router := mux.NewRouter() 

home := router.PathPrefix("/home").Subrouter().StrictSlash(true)

home.Path("/").Methods("GET").HandlerFunc(GetHomeHandler).Name("home")

home.Path("/post/").Methods("POST").HandlerFunc(PostHomeHandler).Name("home-post")



p, err := router.Get("home").URL()

if (err != nil) { panic (err) }

log.Printf(p.Path)


p, err = home.Get("home-post").URL()

if (err != nil) { panic (err) }

log.Printf(p.Path)


查看完整回答
反對(duì) 回復(fù) 2021-09-13
  • 1 回答
  • 0 關(guān)注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)