0
我試圖在我的項目中鏈處理程序。golang中間件
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("", "[email protected]()/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)
}
我該怎麼做才能得到輸出? 在此先感謝。
這已經做過很多次的去了。如果你想要一些輕巧的東西,並附帶一些「電池」,請瀏覽https://github.com/urfave/negroni,它非常流行,易於使用。記錄和從恐慌中恢復是標準的。 – reticentroot
從panics中恢復已經是'net/http'中的標準。 – Adrian
@嘗試發佈至少會編譯的代碼(除非您發佈有關編譯問題)。引用的代碼引用了未定義或導入的「alice」。 – Adrian