1 回答

TA貢獻1835條經驗 獲得超7個贊
你為什么不把它分成一個go包(例如:包服務器)和導入這個包的主應用程序:
yourproject/cmd/server/main.go
package main
import (
"yourproject/internal/server"
)
func main() {
srv := server.New()
// ...
port := "8443"
// do some logic here
srv.Run(port)
}
和 yourproject/internal/server/server.go
package server
import (
"fmt"
"net/http"
)
import "C"
type Server struct{}
func New() *Server {
return &Server{}
}
func hello(w http.ResponseWriter, req *http.Request) {
fmt.Fprintf(w, "hello\n")
}
func headers(w http.ResponseWriter, req *http.Request) {
for name, headers := range req.Header {
for _, h := range headers {
fmt.Fprintf(w, "%v: %v\n", name, h)
}
}
}
// export Run server
func (s *Server) Run(port string) {
http.HandleFunc("/hello", hello)
http.HandleFunc("/headers", headers)
if err := http.ListenAndServe("localhost:"+port, nil); err == nil {
fmt.Println("listening to 8090")
} else {
fmt.Println("ListenAndServe: ", err)
}
}
- 1 回答
- 0 關注
- 96 瀏覽
添加回答
舉報