gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 22:17:30 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Organizing a multiple-file Go project [closed]

(7 个回答)


2年前关闭。




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

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

最佳答案

这是我的做法。假设您有一个检查数据库连接的 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)
}

关于go - 如何模块化处理函数和路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58633730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com