这是我第一次尝试使用Go(Golang)编写一个小博客。现在,我有一个只有几页的小网站。我的main
包含此内容。
http.HandleFunc("/about", about)
http.HandleFunc("/contact", contact)
http.HandleFunc("/", homepage)
if err := http.ListenAndServe(":8080", nil); err != nil {
log.Fatalln(err)
}
我的第一个问题是:这叫什么?我称之为将URL映射到函数,但我的Google搜索结果并没有带来丰富的搜索条件。这被称为"路由"?
其次,我的目标是编写一个小博客应用程序。我想使用数据库来保存博客文章和其他数据。但是,将URL映射到我上面所做的功能似乎并不正确,因为在有人发布博客帖子之前无法知道URL应该是什么。我希望URL与博客文章标题相匹配。此外,可能有数百篇博客文章,所以写一堆http.HandleFunc
s似乎是不合理的。
最后,我的问题是:有哪些方案可以解决这个障碍?
答案 0 :(得分:0)
“博客应用”的另一种方法是静态网站生成器 你可以在gohugo(repo GitHub)中找到一个很好的例子,这意味着you only have one Handler:
if port > 0 {
if !viper.GetBool("DisableLiveReload") {
livereload.Initialize()
http.HandleFunc("/livereload.js", livereload.ServeJS)
http.HandleFunc("/livereload", livereload.Handler)
}
go serve(port)
}
但更一般地说,所谓的路由器,你可以在这个优秀的 Guide to 3rd Party Routers in Go 2014/11/20 中看到它们: