将参数传递给 Go 处理程序
在 Web 开发中,处理程序负责处理传入的 HTTP 请求并返回响应。默认情况下,流行的 Go 路由库 Gorilla Mux 期望将处理程序定义为带有两个参数的函数:http.ResponseWriter 和 *http.Request。
但是,您可能会遇到需要传递处理程序的附加参数,例如数据库对象或其他依赖项。全局变量可以是一个方便的解决方案,但它们也可能导致潜在的问题。
全局变量的替代品
为了避免使用全局变量将参数传递给处理程序,有几种解决方法可用:
1.基于结构的处理程序
您可以定义嵌入数据库对象并包含处理程序函数的自定义结构。通过创建此结构的实例,您可以将适当的实例传递给每个处理程序。
2.包装函数
您可以创建一个包装函数,它接受附加参数并调用实际的处理程序:
两种方法都提供了将参数传递给 Go 处理程序的方法,同时避免全局变量的使用。
以上是如何在不使用全局变量的情况下将参数传递给 Go 处理程序?的详细内容。更多信息请关注PHP中文网其他相关文章!