登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-16 20:21:28 148浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《如何模块化处理函数和路由》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

我意识到,在构建 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)
}

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《如何模块化处理函数和路由》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>