-1
以前,當我運行一個golang文件在CMD中創建一個http服務器時,我關閉了cmd,服務器也關閉了。如何關閉Go http服務器?
但是現在,運行該程序後,cmd允許我輸入另一個命令。我關閉cmd,服務器仍然運行。
D:\Projects\Go\src\middleware>go run middleware.go
2017/04/22 22:35:37 Start
D:\Projects\Go\src\middleware>
問題是什麼?
操作系統:Windows 10創
我的代碼:
package main
import (
"log"
"net/http"
)
func middlewareOne(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
log.Println("Executing middlewareOne")
next.ServeHTTP(w, r)
log.Println("Executing middlewareOne again")
})
}
func middlewareTwo(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
log.Println("Executing middlewareTwo")
if r.URL.Path != "/" {
return
}
next.ServeHTTP(w, r)
log.Println("Executing middlewareTwo again")
})
}
func final(w http.ResponseWriter, r *http.Request) {
log.Println("Executing finalHandler")
w.Write([]byte("OK"))
}
func main() {
log.Print("Start")
finalHandler := http.HandlerFunc(final)
http.Handle("/", middlewareOne(middlewareTwo(finalHandler)))
http.ListenAndServe(":3000", nil)
}
打印從ListenAndServe返回的錯誤 – JimB