-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