问题标签 [httprouter]

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 投票
1 回答
1692 浏览

http - 重定向返回 http:multiple response.WriteHeader 调用

我正在使用来自 github的 Jon Calhoun 的 Go MVC 框架。

该框架使用julienschmidt/httprouter作为其唯一依赖项。

我有一个与示例中类似的主要方法:

我在登录 url 上发了一个帖子,它调用了以下方法:

基本上,如果登录不正确,我会返回相同的视图。如果登录正确,我想重定向到不同控制器中的另一种方法。

但是,当我调用时http.Redirect(w, r, "/dashboard", 307),它会返回以下错误:

我不确定为什么会发生这种情况,但我怀疑这与我的侦听器调用 Perform 函数有关,该函数创建了一个 http.handler,如下所示。

有谁知道如何使用这个 MVC 框架进行重定向?或者有一个一次性的解决方案?

0 投票
1 回答
1218 浏览

http - 使用Go中的URL路由将URL路径与页面名称匹配的正确方法?

我正在制作一个 Go 网站(小型服务),但不知道如何验证页面 URL 是否正确或找不到 404。最终我了解到 http 请求路由器/多路复用器存在。

例子:

现在我只看到一种方法来做到这一点,你不知何故有一个网站的文章列表,然后你以某种方式将它传递给路由器。您应该如何获得该文章列表?

对于动态关系数据库站点:您是否在数据库中查询文章标题,并将其设为地图字符串?

对于静态网站上的静态文件:您在路由器或 net/http 中使用一些 http 文件服务器目录功能?

如果是这样,对于数据库,这是否意味着每次访问页面时都必须查询数据库?或者您是否将文章列表存储在文件或其他东西中并在每次制作新文章时更新它?

另外,我打算使用 https://github.com/julienschmidt/httprouter 或类似的。

0 投票
1 回答
1408 浏览

go - httprouter 传入很多中间件功能

我来自 node express,我能够传入尽可能多的中间件,例如: routes.use('/*', ensureAuth, logImportant, ... n);

使用时如何做类似的事情r.GET("/", HomeIndex)

我是否被迫做类似的事情EnsureAuth(HomeIndex)?因为我可以让它发挥作用。不幸的是,我不确定在不将函数链接在一起的情况下添加任意数量的中间件的好方法是什么。

有没有更优雅的方法,所以我可以以某种方式使用可变参数类型函数来做r.GET("/", applyMiddleware(HomeIndex, m1, m2, m3, m4)?我现在正在尝试,但我觉得有更好的方法来做到这一点。

我查看了 httprouter 问题页面,找不到任何东西:(

谢谢!

0 投票
1 回答
1897 浏览

http - 在 root 上提供静态内容并在 /api 上休息

我正在使用httprouter从 api 调用中的路径解析一些参数:

并想将一些文件添加到根 ( /) 以提供服务。只是和。index.html_ 全部在一个名为的本地目录中script.jsstyle.cssstatic

这样我就可以使用浏览器访问localhost:8080/它,它会服务index.html并且js来自浏览器的将调用/api/:param1/:param2

但是这条路径与路径冲突/api

panic: wildcard route '*filepath' conflicts with existing children in path '/*filepath'

0 投票
2 回答
1423 浏览

go - 在 Golang 中获取 POST 参数,标题为 application/json

我是 golang 的新手,并尝试使用 httprouter ( https://github.com/julienschmidt/httprouter ) 使用 POST 方法创建 REST API。我正在使用标头为 Content-Type 的简单原始请求:application/json。

我已经努力但没有办法获取原始查询参数。

req.FormValue("name") 或 req.Form.Get("name") 工作正常,但标头为 Content-Type : application/x-www-form-urlencoded

有没有人尝试获取原始查询参数(标头为 Content-Type:application/json)?

0 投票
1 回答
1402 浏览

go - 在 net/http golang 中链接中间件

我正在尝试向授权中间件添加上下文。ContextHandler 是一个处理程序,它将被传递给 api 处理程序以处理连接和配置变量。ContextHandler 中还添加了一个 struct Method ServeHTTP,以便它满足 net/Http 接口以正确处理请求。

CheckAuth 是接受请求以检查令牌验证等的中间件,如果令牌有效,则执行 ServeHTTP 方法,如果不是,则在响应中返回适当的错误。

代码编译,但我在 ServeHTTP 方法中遇到错误。

}

}

0 投票
1 回答
591 浏览

go - 在休息 api 中使用 goroutine - 出现未定义的错误

我正在学习 GO 并想做一个简单的 rest API。

我想要做的是在处理 api 请求后启动一个 goroutine 并在后台异步完成工作。

到目前为止,这是我的实现:

当我尝试运行此代码时,我收到以下错误(在此行queue <- func() { ... }):

./main.go:46:2:未定义:队列

如何使queue通道对我的请求处理程序可用(即 httprouter GET 请求处理程序函数)?

其次,我在控制台输出(stdout)中看不到我的log.Printf()调用输出,例如应用程序运行时的服务器状态消息。任何想法为什么?

0 投票
1 回答
274 浏览

javascript - 如何在 Odoo 的路由页面中使用 CSS 和 JS 资源?

我正在使用 Odoo 控制器创建一个网页并将其公开给客户,因此他不需要登录。

在此页面中,我尝试使用存在于模块(静态文件夹)内的文件中的 CSS 和 JS 库。

问题是页面无法访问这些资源,因为它在 URL 的域中而不是在文件系统中搜索它们(例如http://localhost:8069/mywebpage

我试图继承模板和 qweb 设计并注入文件,但我遇到了同样的问题。

我发现的唯一解决方案是在模板中复制/粘贴 JS 库和 CSS 的源代码,这不是一个实用的解决方案。

如何让路由页面访问 Odoo 模块中的 CSS 和 JS 资源?

0 投票
1 回答
794 浏览

go - How to pass a httprouter.Handle to a Prometheus http.HandleFunc

Cannot pass Prometheus midware into httprouter endpoint definitions.

I'm trying to add a Prometheus midware into our endpoint implementation. But our endpoint are using a third party mux package called httprouter. Then when I tried to add this midware into existing code base, I cannot find a good way to integrate both together.

My problem is I can not pass my prometheus handle to that httprouter endpoint function as parameter

Below is what I want to do:

0 投票
0 回答
48 浏览

scala - 无法将路由与 finatra 控制器中的命名参数匹配

com.twitter.finatra.http.Controller用来在 Scala 中设置端点,我有一个这样的端点:

我的理解是它应该匹配链接http://myservice/123/lookup并且request.params("id")应该返回“123”。但它永远不会打印出来。但是,当我尝试http://myservice/:id/lookup(完全那样)时-确实如此。所以它期望地址中的“:id”而不是动态值。显然request.params("id")不存在。如果我调用 http://myservice/:id/lookup?id=123,则request.params("id")来自123查询字符串参数

做错了什么或误解了什么?我对 Scala 很陌生,所以整个事情完全有可能不是按预期的方式设置的。