亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

馬提尼中處理程序的調用順序是什么?

馬提尼中處理程序的調用順序是什么?

Go
郎朗坤 2021-12-06 19:37:46
關于 golang 馬提尼我們可以使用 m.Use() 添加中間件。當然,“中間件處理程序按添加順序調用”。此外,也可以通過路由器添加處理程序,如 r.Get("/", handler)。有時,我們還需要在路由器處理程序之后調用一個處理程序。那是在將某些內容寫入 ResponseWriter 之前調用處理程序。那么,如何排列這些處理程序的呈現順序?我無法得到解決方案是 martini 的文檔。
查看完整描述

1 回答

?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

正如您所說,Martini 中的中間件和其他中間件是按照定義的順序調用的:首先是使用添加的中間件,然后是路由中間件,然后是路由處理程序。


這是馬提尼文檔給出的中間件示例:


// log before and after a request

m.Use(func(c martini.Context, log *log.Logger){

    log.Println("before a request")


    c.Next()


    log.Println("after a request")

})

據此,如果您有中間件 A 和 B 以及路由 R,那么調用鏈將是這樣的:


func A() {

    // Do things before B


    func B() {

        // Do things before R


        func R() {

            // Do things in R

        } ()


        // Do things after R

    }()


    // Do things after B

}

因此,根據您的需要,您需要在Next() 調用之前或之后在中間件中添加代碼。


查看完整回答
反對 回復 2021-12-06
  • 1 回答
  • 0 關注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號