Go 戈兰的中间产品

Go 戈兰的中间产品,go,Go,我正在尝试在我的项目中链接处理程序 package main import ( "database/sql" "fmt" "net/http" ) func loggingHandler(next http.Handler) http.Handler { fn := func(w http.ResponseWriter, r *http.Request) { next.ServeHTTP(w, r) } return http.

我正在尝试在我的项目中链接处理程序

package main

import (
    "database/sql"
    "fmt"
    "net/http"
)

func loggingHandler(next http.Handler) http.Handler {
    fn := func(w http.ResponseWriter, r *http.Request) {
        next.ServeHTTP(w, r)
    }
    return http.HandlerFunc(fn)
}

func loginHandler(res http.ResponseWriter, req *http.Request) {
    if req.Method != "POST" {
        http.ServeFile(res, req, "login.html")
        return
    }
    // some code
}

func MainPageHandler(res http.ResponseWriter, req *http.Request) {
    // some code
}

func main() {
    db, err = sql.Open("", "password@()/db name")
    if err != nil {
        fmt.Println(err)
    }
    defer db.Close()
    commonHandlers := alice.New(loggingHandler)
    http.Handle("/Login", commonHandlers.ThenFunc(loginHandler))
    http.Handle("/", commonHandlers.ThenFunc(MainPageHandler))
    http.ListenAndServe(":8080", nil)
}
我应该怎么做才能得到输出?
提前感谢。

请求处理程序可以通过将
http.ResponseWriter
作为第一个参数,使用以下任意参数编写响应

例如:

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "URL.Path = %q\n", r.URL.Path)
}

这在围棋中已经做了很多次了。如果你想要一些轻便的东西,而且还附带了一些“电池”,那就看看它吧,它非常受欢迎,而且使用方便。日志记录和从恐慌中恢复是标准的。在
net/http
@Tery中,从恐慌中恢复已经是标准的。请尝试发布至少可以编译的代码(除非您发布的是编译问题)。引用的代码引用了未定义或导入的
alice