登录
首页 >  Golang >  Go问答

如何在Echo框架中传递额外的参数给处理程序?

来源:stackoverflow

时间:2024-03-19 08:27:38 223浏览 收藏

在 Echo 框架中,将额外参数传递给处理程序的方法是创建匿名函数(闭包)并将其作为处理程序传递给 Echo。该闭包可以访问在外部作用域中声明的变量。

问题内容

如何将一些额外的变量传递给 echo mux 处理程序?

我在 main.go 中注册了这样的路由:

e.get("/search/:query", handlers.search(*kindex, app.infolog))

正如您所见,这不是处理程序的正确签名。它应该在没有任何争论的情况下通过。即 handlers.search

如何从我的搜索处理程序访问 kindex 和 infolog?

func Search(c echo.Context, kindex string, infoLog *log.Logger) error {
  # Should I access a global variable from here?
  infoLog.Printf("Kendra Index: %v\n", kindex)
  # cut..
}

解决方案


您可以创建给定类型的匿名函数(闭包)并将其传递给 echo:

    handler := func(c echo.Context) error {
      return Search(c, *kindex, infoLog)
    }
    e.GET("/search/:query", handler)

今天关于《如何在Echo框架中传递额外的参数给处理程序?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

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