我从Go开发开始.http服务器启动时是否有任何方法可以打印?例如"Server is started at port 8080"
在Node(使用Express)中,它会像:
app.listen(8080, function() { console.log('Server started at port 8080') });
这是我的代码:
func main() { http.HandleFunc("/", MyHandler) http.ListenAndServe(":8080", nil) }
谢谢.
ListenAndServe
由于它阻止并且永不返回,因此您无法打印日志消息,因此基本上您有两个主要选项:
打印"在端口上启动服务器...."就是这样 - 但是如果ListenAndServe
无法启动它会返回错误,所以除非因此而打印出一些错误或恐慌,否则您可以假设服务器已启动.
ListenAndServe
在一个单独的goroutine中调用,并确保没有返回错误并打印"服务器启动..."等.
我个人更喜欢第一种方法.
使用Go的日志包:
package main import ( "net/http" "log" ) func main() { addr := ":8080" http.HandleFunc("/", MyHandler) log.Println("listen on", addr) log.Fatal( http.ListenAndServe(addr, nil) ) }
http.ListenAndServe
打开服务器端口,永远阻止等待客户端.如果无法打开端口,则log.Fatal
呼叫将报告问题并退出程序.