将可变数量的 url 映射到 HandleFunc

这是我第一次尝试用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.HandleFuncs似乎不合理。


最后,我的问题是:有哪些选项可以解决这个障碍?


ITMISS
浏览 176回答 1
1回答

尚方宝剑之说

“博客应用程序”的另一种方法是静态站点生成器。你可以在gohugo ( repo GitHub ) 中找到一个很好的例子,这意味着你只有一个 Handler:if port > 0 {    if !viper.GetBool("DisableLiveReload") {        livereload.Initialize()        http.HandleFunc("/livereload.js", livereload.ServeJS)        http.HandleFunc("/livereload", livereload.Handler)    }    go serve(port)}但更一般地说,它被称为路由器
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go