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