问题标签 [gorilla]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
8500 浏览

go - 嵌套的 Gorilla Mux 路由器不起作用

使用下面的代码,当我访问 /test2 它以 404 响应 - 未找到。/test1 工作正常。这是为什么?尽管路由器实现了 http.Handler 接口,但不允许嵌套吗?

编辑:

我的主要目标是添加一些初始工作,这些工作对于 subRouter 中的所有路由都是通用的,并且仅适用于它们。更具体地说,我想使用Negroni作为我的中间件编排器。在 Negroni 网站上有一个将中间件添加到路由组的示例:

Negroni 基本上执行每个参数的 ServeHTTP 方法,因为它们都实现了 http.Handler。它按顺序执行它们,因此路由器路由将在最后。

我熟悉SubrouterMux 中的概念,但是我不能以与上面示例类似的方式使用它,特别是,我不能在 mainRouter 和它的Subrouter. 这就是嵌套看起来更灵活的原因。

0 投票
1 回答
1743 浏览

go - GO:安装大猩猩后拒绝提交文件的权限

我是 SO 新手,也是 GO 的新手。我在本地服务器上顺利构建和运行 GO 代码,直到我不得不使用 Gorilla 工具包中的一些包。

我在命令行中运行的内容:

我根据此处的示例进行了此操作:http: //golang.org/doc/articles/go_command.html。在 gettng 下从 Go 命令开始,这里是http://www.gorillatoolkit.org/

在此之后,我将 main.go 代码导入 mygo 文件夹。我的目录文件夹如下所示:

但是,当我运行 go build main.go 并尝试运行 ./main 时,我得到了

怎么了??请帮忙。谢谢!

0 投票
1 回答
1212 浏览

go - 当用户在 3 分钟内未向 Go Web 服务器发送数据时,Go 会话超时

我将使用 Go 构建一个 Web 服务器。现在,我想将会话 ID 返回给带有用户名和密码的用户登录。而且我认为我对登录程序没问题。用户每次想要发布数据时都会使用会话 ID。但是,在用户登录后,如果用户在 3 分钟内没有发送数据,我会尝试销毁使 session id 不再有效的 session。

那么当用户未在 3 分钟内发布数据时,如何使会话过期。(我将使用 beego,beego 会话超时,但确实提到超时取决于发布数据间隔)

谢谢。

0 投票
1 回答
14142 浏览

unit-testing - 在 Golang 中测试 HTTP 路由

我正在使用 Gorilla mux 和 net/http 包创建一些路由,如下所示

我正在尝试编写一个测试来测试这些路线。例如,我正在尝试GET专门测试路线以获取400返回,因此我有以下测试代码。

但是,当我运行这个测试时,我得到一个404可以想象的,因为请求没有被正确路由。?

当我从浏览器测试这个 GET 路由时,它确实返回 a400所以我确定测试的设置方式存在问题。

0 投票
2 回答
2889 浏览

go - Go:使用 gorilla mux 提供 CSS 文件

我有这个目录结构,我正在使用 Gorilla mux:

目录结构

按照这里的建议:http: //www.shakedos.com/2014/Feb/08/serving-static-files-with-go.html我这样做了:

我仍然无法链接 CSS 文件。我究竟做错了什么?

0 投票
1 回答
101 浏览

go - Gorilla/Martini 会话在 Cloud9 IDE 环境中不起作用

我一直在Cloud9 IDE环境中试验 Go Web 应用程序开发。到目前为止,我还没有成功使用Gorilla会话(这也是Martini Web 框架中会话的底层机制)。但是,完全相同的代码确实可以在任何其他环境中成功运行。

要重现该问题,您可以从 Martini 会话插件中剪切并粘贴确切的“Hello World”样式示例应用程序(请参阅此处)。在这个简单的示例中,“/set” URL 为会话设置了一个值,“/get” URL 显示了之前设置的值。

在 Cloud9 IDE 项目中,调用“/get”URL 会将以下内容记录到控制台:

尝试直接测试 Gorilla 时,我得到了类似的结果。但是,当在我的本地环境(或 Nitrous.IO 云环境)中运行任何完全相同的源代码(未修改)时,它工作得很好。

是否有人在 Cloud9 上进行 Go Web 开发,并对这个问题有任何见解?谢谢!

0 投票
3 回答
1629 浏览

http - 获取现有的 gorilla 会话

我正在尝试设置一个大猩猩会话,然后再次检索该值。我正在做以下测试。

这是一个更大的 HTTP 处理程序的片段。但是相关部分已发布,第二次调用store.Get()不是返回现有会话,而是返回一个全新的会话。因此,当执行此代码所在的处理程序时,日志语句将打印到控制台。

为什么在这种情况下我得到一个新会话而不是我已经创建和保存的会话?

0 投票
2 回答
775 浏览

json - 将会话和 JSON 数据写入 http.ResponseWriter

是否可以将会话和一些自定义应用程序特定的 json 数据发送到 Go 的客户端表单 net/http 包。

我正在使用 gorilla/sessions 进行会话。并且存储值后,需要调用 func(s *CookieStore) Save(r *http.Request, w http.ResponseWriter, session *Session) 出错。

但另一方面,这个处理函数也需要通过 fmt.Fprintf(http.ResponseWriter, string(js)) 向客户端发送一些 JSON 数据。

如何做到这一点?

0 投票
1 回答
2292 浏览

go - 处理 Gorilla mux 空变量

我正在使用 gorilla mux 来获取模式值。我如何处理这样的空变量:

去:

当我输入网址 www.example.com/products 或 www.example.com/products/ 时,我收到 404 page not found 错误。如何处理 ProductHandler 中的空变量?

http://www.gorillatoolkit.org/pkg/mux

0 投票
5 回答
37404 浏览

go - Gorilla mux 自定义中间件

我正在使用 gorilla mux 来管理路由。我缺少的是在每个请求之间集成一个中间件。

例如

每个传入的请求都应该通过中间件。我怎样才能在这里集成一个中间件?

更新

我会将它与 gorilla/sessions 结合使用,他们说:

重要提示:如果您不使用 gorilla/mux,则需要使用 context.ClearHandler 包装您的处理程序,否则您将泄漏内存!一个简单的方法是在调用 http.ListenAndServe 时包装顶层多路复用器:

我怎样才能防止这种情况?