0
您好我正在使用justinas/alice,我想根據路徑創建不同的中間件。也就是說,如果我有PATH1和PATH2,我想申請M1,M2,M3的路徑1和M1,M2的路徑2如何在GO中爲不同的路徑使用不同的中間件?
我想:
- 首先建立兩個MUX路由器:
router := mux.NewRouter() router2 := mux.NewRouter()
- 指定的路徑對他們說:
router.HandleFunc(path1,Func1) router2.HandleFunc(path2,Func2)
- 然後,我想有這樣的事情
middlewares:=alice.New(m1,m2).Then(router2) middlewaress:=middlewares.Append(middlewares)
- 然後:
if err := http.ListenAndServe(fmt.Sprintf(":%d", sconf.Server.Port), middlewaress); err != nil {
}
我怎麼可以做這樣的事情?
這樣做導致了一個錯誤:不能使用的func1(類型FUNC(http.ResponseWriter,* http.Request))作爲類型http.Handler在爭論alice.New(M1,M2,M3)。然後 – user6638204
@ user6638204你必須將你的函數包裝在'http.HandlerFunc' ala'中。然後(http.HandlerFunc(func1))' – michael60612