Golang网站开发之启动文件修改

{app.params.name}}{app.params.name}}{app.params.name}}

这几天重新温习了一下Golang,再次进行我的小博客“wiki”进行开发,发现网上似乎多了很多针对web的使用方式的介绍,尤其是http这个库,于是之前一直想解决的问题也有了着落

先看下之前的main.go启动的代码,如下

func main() {
	router.Routes()

	err := http.ListenAndServe(":8090", nil)

	if err != nil {
		log.Println("Server Start Failed")
	} else {
		log.Println("Listening on 0.0.0.0:8090")
	}
}

现在的代码如下

func main() {
	// 路由
	router.Routes()

	var addr = flag.String("addr", ":8090", "The addr of the application")

	log.Println("Starting web server on", *addr)

	if err := http.ListenAndServe(*addr, nil); err != nil {
		log.Fatal("ListenAndServe:", err)
	}
}

这里说下我这段代码是要做什么?

正常来说,启动一个server的话,启动成功了,我们输入下信息,代表我们的server是正常启动的,但是前面第一段代码,并没有达到我的理想要求,什么都没有输出

后面一段代码提前输出了,并且在失败的时候会输出另外一段日志信息,这个虽说取巧了,但是也算是合理。这个问题我查了另外几片文章

https://juejin.im/post/5d390b1ae51d455071250bf7#heading-9

https://echorand.me/posts/golang-dissecting-listen-and-serve/

https://github.com/gin-gonic/gin/blob/master/gin.go

建议从上到下的看下,其实ListenAndServe是可以传第二个参数的,不过要实现对应的DefaultServeMuX的功能,比如ServeHttp这个功能,这个有简单的做法也有复杂的做法,后面我如果需要了,实现后再记录,不过可以看下第三个链接,里面有它实现的逻辑,可以参考下,感觉很完善。

版权声明

durban创作并维护的 小绒毛的足迹博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。

本文首发于 博客( https://www.xiaorongmao.com ),版权所有,侵权必究。

本文永久链接: https://www.xiaorongmao.com/blog/126


版权声明

durban创作并维护的 小绒毛的足迹博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。

本文首发于 小绒毛的足迹博客( https://www.xiaorongmao.com ),版权所有,侵权必究。

本文永久链接: https://www.xiaorongmao.com/blog/126