如何模块化处理函数和路由

我意识到在构建 Web 服务器时,处理它们的所有路由和函数都在文件中main.go。随着应用程序的增长,我想可能很难跟踪所有内容。

是否有关于将路由和处理程序函数“存储”在除 之外的文件中的约定main.go


函数式编程
浏览 72回答 1
1回答

HUX布斯

我是这样做的。假设您有一个检查数据库连接的 ping 处理程序,并且将其放在名为 的包中your/app/animal:package animal...func Ping(db *sql.DB) http.Handler {    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {        if err := db.PingContext(context.TODO()); err != nil {            http.Error(w, err, http.StatusInternalServerError)        }    })}你可以这样设置:package main...func main() {   db, _ := sql.Open("foo",os.GetEnv("DB"))   http.Handle("/ping",animal.Ping(db))   log.Fatal(http.ListenAndServe(os.GetEnv("BIND"),nil)}
打开App,查看更多内容
随时随地看视频慕课网APP