问题标签 [go-chi]

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 回答
1014 浏览

postgresql - 使用 PostgreSQL 和 json-api 发布请求返回一个空正文

在 POST 请求之后,我希望将最后插入的记录编组到 json 中,但返回的是一个空正文。我哪里做得不好?

我相信这是罪魁祸首。插入记录后,它应该返回指定的最后插入的记录。

Update 更新数据库中的 Page 并返回最后插入的记录。这同样适用于更新功能

这是我认为问题正在发生的最后一个功能。最后插入的记录应该被编组为 json。

0 投票
1 回答
815 浏览

go - Go Dep - 在 dep 确保后缺少子包“chi/middleware”

运行 dep ensure 后缺少 go-chi 的中间件子包。

我的 Docker 文件,我还在 docker-compose.yaml 文件中安装了我的代码卷

Gopkg.toml

我的代码,只是一个基本的路由器来测试我的 docker 和 dep 配置。

我的代码在使用 go get 时运行良好。但是在 dep 上,它缺少它的子包。

0 投票
0 回答
1570 浏览

unit-testing - 使用 Go-Chi/Chi 进行单元测试

我正在尝试使用 Go-Chi 作为我的多路复用器为我的其余端点编写单元测试。

以前我使用 gorilla/mux,但后来搬到 Chi,因为随着应用程序的增长,它更容易维护。

使用 Gorilla/mux,我可以使用“ServeHTTP”发送测试请求,但使用 go-chi/chi 似乎没有做同样的事情。

现在测试显示 404 错误,但我希望它给出 200 错误。此请求在运行我的应用程序和手动测试时工作正常。

我相信这个问题与“ServeHTTP”有关。也许它与chi的工作方式不同。有谁知道如何让这个测试成功运行?

0 投票
1 回答
2946 浏览

api - 如何从 HTTP 处理程序中的 URL 获取参数

我正在开发一个网络服务应用程序,其端点/加密货币/汇率接受两个货币“符号”作为输入。Web服务应该在数据库中搜索这些字符之间的货币兑换数据,如果数据库中没有值,或者时间戳值与当前相差1分钟以上,则向服务API请求: https: //min-api.cryptocompare.com/documentation 所以,我创建了结构和 go-chi 路由器。但我不知道如何构建一个工作处理程序来从 URL 获取参数,例如:https ://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD

我想我可以尝试为处理程序主体上的第一个值创建 Cur1:

同样对于第二个值:

最终请求将是:~/get_rates?cur1=eth&cur2=btc

0 投票
1 回答
2848 浏览

go - 无法在 Go Chi 路由器中读取“request.Body”

在 main/entry 函数中考虑以下代码

和 CreateBook 函数定义为

图书模型

//这里导出属性解决了问题 type Book struct { ID primitive.ObjectID json:"id,omitempty" bson:"id,omitempty" name string json:"name,omitempty" bson:"name,omitempty" author string json:"author,omitempty" bson:"author,omitempty" isbn string json:"isbn,omitempty" bson:"isbn,omitempty" }

但是json.NewDecoder(r.Body).Decode(&bookObj)不要解析任何东西,因为 req.Body 是空的,没有抛出错误,它关于 chi 的 Render 功能,谁能帮我禁用 Chi 的 Render 和 Bind 功能,我只想通过 JSON 解码器解析 body。

谢谢。

0 投票
3 回答
2420 浏览

http - 如何在 go-chi 中启用 gzip 压缩中间件

如何使用 go-chi 框架的 gzip 中间件启用 gzip 压缩?

尝试使用此处显示的示例:

https://github.com/go-chi/chi/issues/204

但是当我用 curl 检查时,我得到了这个:

我尝试了代码“hello world”:

但是当我尝试用 curl 验证时,结果是一样的

这是怎么回事?

0 投票
1 回答
974 浏览

unit-testing - 在访问日志中间件的情况下如何进行单元测试

我有一个中间件来记录此服务访问。但是我多次在谷歌上搜索时对进行单元测试感到困惑。我还没有找到解决这个问题的正确方法

0 投票
1 回答
1440 浏览

mysql - 带有 url 参数的 go chi 路由器和 mysql db 无法正常工作

我是 golang 的新手,正在使用 chi 在 golang 中提供宁静的服务。我正在尝试创建如下路线:

}

这是我从 mysql db 获取的方法:

}

...以及我如何从中获得:

}

但是我尝试访问此端点,但找不到 404: http://localhost:8000/project/restaurant/search?name= {n}

我可以知道这里的问题吗?

PSrouter.Mount("/project/", restaurant.NewRouter(dm))在主函数中。

0 投票
0 回答
800 浏览

go - 将中间件附加到安装在路由器上的路由

这可能只是因为我缺乏经验,但我已经接管了一个用 Go 编写的网络服务器解决方案,但我遇到了一些问题。

路由的设置方式是,每个“顶部”路由都使用 router.Mount() 安装到路由器,每个安装的路由都附加一个处理程序。例子:

所以,在这个挂载的路由中,我想添加一个中间件来获取特定的 URL 参数。我已经尝试过了,并按照本指南https://medium.com/@szablowska.patrycja/chi-and-missing-urlparam-in-middleware-9435c48a063b似乎对其他人有用。但是,这对我没有用,我现在怀疑这是因为安装方法。

中间件的想法很简单,只需根据一些要求检查 URL 参数。我当然可以在每条路径中手动执行此操作,但中间件在可读性和未来开发方面会更好。中间件是怎么写的:

然后像这样应用:

这显然行不通。任何帮助将不胜感激,因为我无法相信安装路由使得无法将中间件添加到子组。

编辑:这工作得很好,只是我没有注册我称之为不受影响的路线。因此,如果其他人最终会遇到同样的问题,请知道这实际上是一种有效的方法。

0 投票
1 回答
281 浏览

go - 使用 go-chi 路由器时无法连接到 graphql Playground

我正在使用 gqlgen 创建一个 go graphql 服务器。

在本教程中,默认设置可以localhost:8080正常工作。

服务器.go

但是,如果我切换到 Chi 包路由器,我会收到 400 错误:

服务器.go

在此处输入图像描述