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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Web請求之前執(zhí)行功能

在Web請求之前執(zhí)行功能

Go
哈士奇WWW 2021-05-07 14:39:42
我試圖在每個 Web 請求之前執(zhí)行一個函數(shù)。我有一個簡單的Web服務(wù)器:func h1(w http.ResponseWriter, r *http.Request) {  fmt.Pprintf("handler: %s\n", "h1")}func h2(w http.ResponseWriter, r *http.Request) {  fmt.Pprintf("handler: %s\n", "h2")}    func h3(w http.ResponseWriter, r *http.Request) {  fmt.Pprintf("handler: %s\n", "h3")}    func main() {  http.HandleFunc("/", h1)  http.HandleFunc("/foo", h2)  http.HandleFunc("/bar", h3)  /*    Register a function which is executed before the handlers,    no matter what URL is called.  */  http.ListenAndServe(":8080", nil)}問題:有沒有簡單的方法可以做到這一點?
查看完整描述

1 回答

?
慕無忌1623718

TA貢獻(xiàn)1744條經(jīng)驗 獲得超4個贊

包裝每個HandlerFuncs。


func WrapHandler(f HandlerFunc) HandlerFunc {

  return func(w http.ResponseWriter, r *http.Request) {

    // call any pre handler functions here

    mySpecialFunc()

    f(w, r)

  }

}


http.HandleFunc("/", WrapHandler(h1))

由于Function是Go中的一等值,因此可以輕松地包裝,咖喱它們或其他您可能要使用它們做的事情。


查看完整回答
反對 回復(fù) 2021-05-31
  • 1 回答
  • 0 關(guān)注
  • 220 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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