代码之家  ›  专栏  ›  技术社区  ›  Atishay Jain

在ListendService中调用多个句柄

go
  •  0
  • Atishay Jain  · 技术社区  · 7 年前

    ListenAndServe 方法从 http 包裹例如:

    if err := http.ListenAndServe(":"+s.config.Port,
        handlers.LoggingHandler(os.Stdout, s.router),
        handlers.CORS()(r.router)
    ); err != nil {
    

    问题:

    每次我都会遇到以下错误:

    pkg/server/server.go:30:31:调用中的参数太多 http.listendServe需要(字符串、http.Handler、http.Handler) (字符串,http.Handler)pkg/server/server.go:30:113:undefined:r

    问题:

    现在它不接受超过2个参数,那么有没有其他方法可以这样做呢?

    1 回复  |  直到 7 年前
        1
  •  1
  •   poy    7 年前

    ListenAndServe http.Handler .

    处理程序 这包括:

    func simpleChain(hs ...http.Handler) http.Handler {
      return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request){
        for _, h := range hs {
          h.ServeHTTP(w, r)
        }
      })
    }
    

    但是,如果任何处理程序想要对 Request.Body 或者写信给 ResponseWriter .

    应答器 需要检查的状态代码。我要说的是,在这一点上引入一个图书馆。