草庐IT

gorilla-toolkit

全部标签

go - 在 gorilla mux 路由器上设置 404 NotFound 处理程序

这是我用Go语言和gorillamux包编写的一个小型演示网络服务器的代码:packagemainimport("fmt""github.com/gorilla/mux""net/http")funchandler(whttp.ResponseWriter,r*http.Request){vars:=mux.Vars(r)fmt.Fprintf(w,"Hithere,Ilove%s!",vars["username"])}funchomeHandler(whttp.ResponseWriter,r*http.Request){ifr.URL.Path!="/"{errorHandler

angularjs - go gorilla/sessions angularjs and path, session values not saved (find the bug/place the blame)

好的,从哪里开始...问题是当我将session的Path设置为"/"时,session没有保存。我设置了Path因为当发布到一个不是session保存路径的路径时,又名session.Save()被称为session值“用户”为空|无|未设置。所以我设置了Path:"/",但session没有保存。检查Chromium时,我看到cookie已设置。我不知道问题出在哪里。它在gorilla/session中吗?它在AngularJS中吗?HTML5模式已关闭。换句话说,发生这种情况是因为/api/1.0/community与/api/1.0/user的路径不同,其中sessions.S

web-applications - Go Gorilla mux 来处理 API 请求

我想从下面的GorillaMuxrouterinput.packagemain获取map结构例如,router.Methods("GET").Path("/api/{action}").HandlerFunc(httpLog(myHandler))funcmyHandler(rwhttp.ResponseWriter,r*http.Request){vars:=mux.Vars(r)log.Println(vars["action"])}服务0.0.0.0:3000/api/input并打印出字符串input如果我希望能够接收如下请求怎么办:0.0.0.0:3000/api/v3?id

logging - 带有 gorilla 复用器的 Go 记录器装饰器

我是Go的新手,并在http://thenewstack.io/make-a-restful-json-api-go/之后使用mux来创建一些RESTAPI。.虽然它大部分工作正常,但我没有看到使用Log.Println记录HTTP请求的Logger装饰器按预期进行控制台记录。我错过了什么吗?此外,看起来在遍历路由列表时调用了Logger,这是为每个请求记录日志的正确方法吗? 最佳答案 日志默认流向stderr。如果您想查看服务器的输出(例如,名为“testAPI”),您需要将stderr重定向到stdout(您的终端)://Ifa

session - 戈朗 : Retrieving Gorilla/Sessions Cookie

我试图找出通过s.Save(r,w)保存到客户端浏览器的cookie值。这样我就可以在调用renderTemplate()之前将cookie值存储在数据库中。有没有办法使用gorilla/sessionsapi来完成此操作?funclogin(whttp.ResponseWriter,r*http.Request,db*sql.DB,store*sessions.CookieStore,t*template.Template){ifr.Method=="POST"{r.ParseForm()username,password,remember:=r.FormValue("user[na

go - 设置 gorilla mux 子路由器

如果我有一个mux.Router,我该如何将它设置为“子路由器”?我能找到的所有示例都通过调用Route.Subrouter()然后在其上设置处理程序来创建一个新路由器,但我已经有了一个路由器!//doesnotknowabout"/api/v1/"v1_router:=mux.NewRouter()subrouter.HandleFuc("/route1/",...)subrouter.HandleFuc("/route2/",...)//doesnotnowaboutroute1,route2r:=mux.NewRouter()r.PathPrefix("/api/v1/").??

go - 如何使用 Gorilla Mux 将整个路径与正则表达式匹配

我希望能够使用正则表达式来匹配整个路径,而不仅仅是它的一部分。例如:/users.*会匹配/users/users/bob/users/bob/repos目前使用Mux的HandleFunc您必须匹配多个路径/users/users/{.*}/users/{.*}/{.*}... 最佳答案 我最终编写了自己的自定义匹配器函数并使用了go的正则表达式包。这很容易做到,这是一个例子:import(..."net/http""net/url""regexp""github.com/gorilla/mux"...)...muxRouter:

go - 使用 gorilla mux 的 Autocert

我想使用autocert和gorilamux生成证书,我的实际代码是:funcmain(){certManager:=autocert.Manager{Prompt:autocert.AcceptTOS,//HostPolicy:autocert.HostWhitelist("example.com"),Cache:autocert.DirCache("./certs"),//Folderforstoringcertificates}http.HandleFunc("/",func(whttp.ResponseWriter,r*http.Request){w.Write([]byte(

go - 如何设置 gorilla /websocket 连接以充当浏览器应用程序的 JSON-RPC 客户端?

我有一个前端aplication,连接到websocket并尝试提供json-rpc2以从服务器调用客户端。在使用“github.com/gorilla/websocket”用Go编写的服务器应用程序中为其创建*rpc.Client的最佳方法是什么?我尝试使用*websocket.Conn的UnderlyingConn():jsonrpc2.NewClient(conn.UnderlyingConn()),但它不起作用. 最佳答案 我提供NewClient与io.ReadWriteCloser将读/写转换为websocket的实现操

google-app-engine - 是否可以在 Google appengine 标准环境中使用 Gorilla mux 路由器?

有没有办法让appengine.Main()与mux路由器一起工作?以下代码编译但不匹配任何路由。funcmain(){r:=mux.NewRouter()r.HandleFunc("/",indexHandler)http.Handle("/",r)appengine.Main()} 最佳答案 问题的根源是我的app.yaml。我有handlers:-url:/api/.*script:_go_app因此,为了正确匹配路由,我必须更新mux路由器中的路径以匹配完整路径。r.HandleFunc("/api/",indexHandl