我正在建立一个网站,并且Go我知道它是如何工作的以及如何处理路线handlefunc()。然而,我的网站越来越大,我可能会有很多网址。问题是如何处理这一切?handelfunc()我不能只在 my 中添加 100+ 或 500+main()来匹配每个可能的路由或 url。那么如何管理呢?提前致谢。
笔记 ::
我的问题不需要任何代码。
你绝对不应该HandleFunc在你的 main 中放入 500+。
首先,随着项目规模的扩大,您可能会创建模块和类型。
然后,您可以委托给您的这些模块或类型main,以便每个模块或类型都可以注册自己的句柄。
此外,您的许多 URL 可能都会遵循以下模式,例如:
"/articles/{id}"
Run Code Online (Sandbox Code Playgroud)
如果是这种情况,您只需注册该模式一次,然后处理请求的函数就可以根据参数进行操作{id}。
如果使用模式,有几个库可以帮助管理路由,或者您也可以编写自己的路由逻辑。
看看这个问题,了解有关此事的一些替代方案:
例如,如果您使用Chi(https://github.com/pressly/chi)来管理路由,则在 main 中您可以执行以下操作:
r := chi.NewRouter()
r.Mount("/admin", adminRouter())
Run Code Online (Sandbox Code Playgroud)
然后在该adminRouter()函数内,您不断创建将在以下位置提供服务的处理程序/admin:
func adminRouter() http.Handler {
r := chi.NewRouter()
r.Use(AdminOnly)
r.Get("/", adminIndex)
r.Get("/accounts", adminListAccounts)
return r
}
Run Code Online (Sandbox Code Playgroud)
(所有这些都取自Chi的文档)
这只是一个示例,您可以使用不同的方式实现类似的逻辑。
| 归档时间: |
|
| 查看次数: |
858 次 |
| 最近记录: |