问题标签 [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.
postgresql - 使用 PostgreSQL 和 json-api 发布请求返回一个空正文
在 POST 请求之后,我希望将最后插入的记录编组到 json 中,但返回的是一个空正文。我哪里做得不好?
我相信这是罪魁祸首。插入记录后,它应该返回指定的最后插入的记录。
Update 更新数据库中的 Page 并返回最后插入的记录。这同样适用于更新功能
这是我认为问题正在发生的最后一个功能。最后插入的记录应该被编组为 json。
go - Go Dep - 在 dep 确保后缺少子包“chi/middleware”
运行 dep ensure 后缺少 go-chi 的中间件子包。
我的 Docker 文件,我还在 docker-compose.yaml 文件中安装了我的代码卷
Gopkg.toml
我的代码,只是一个基本的路由器来测试我的 docker 和 dep 配置。
我的代码在使用 go get 时运行良好。但是在 dep 上,它缺少它的子包。
unit-testing - 使用 Go-Chi/Chi 进行单元测试
我正在尝试使用 Go-Chi 作为我的多路复用器为我的其余端点编写单元测试。
以前我使用 gorilla/mux,但后来搬到 Chi,因为随着应用程序的增长,它更容易维护。
使用 Gorilla/mux,我可以使用“ServeHTTP”发送测试请求,但使用 go-chi/chi 似乎没有做同样的事情。
现在测试显示 404 错误,但我希望它给出 200 错误。此请求在运行我的应用程序和手动测试时工作正常。
我相信这个问题与“ServeHTTP”有关。也许它与chi的工作方式不同。有谁知道如何让这个测试成功运行?
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
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。
谢谢。
http - 如何在 go-chi 中启用 gzip 压缩中间件
如何使用 go-chi 框架的 gzip 中间件启用 gzip 压缩?
尝试使用此处显示的示例:
https://github.com/go-chi/chi/issues/204
但是当我用 curl 检查时,我得到了这个:
我尝试了代码“hello world”:
但是当我尝试用 curl 验证时,结果是一样的
这是怎么回事?
unit-testing - 在访问日志中间件的情况下如何进行单元测试
我有一个中间件来记录此服务访问。但是我多次在谷歌上搜索时对进行单元测试感到困惑。我还没有找到解决这个问题的正确方法
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))
在主函数中。
go - 将中间件附加到安装在路由器上的路由
这可能只是因为我缺乏经验,但我已经接管了一个用 Go 编写的网络服务器解决方案,但我遇到了一些问题。
路由的设置方式是,每个“顶部”路由都使用 router.Mount() 安装到路由器,每个安装的路由都附加一个处理程序。例子:
所以,在这个挂载的路由中,我想添加一个中间件来获取特定的 URL 参数。我已经尝试过了,并按照本指南https://medium.com/@szablowska.patrycja/chi-and-missing-urlparam-in-middleware-9435c48a063b似乎对其他人有用。但是,这对我没有用,我现在怀疑这是因为安装方法。
中间件的想法很简单,只需根据一些要求检查 URL 参数。我当然可以在每条路径中手动执行此操作,但中间件在可读性和未来开发方面会更好。中间件是怎么写的:
然后像这样应用:
这显然行不通。任何帮助将不胜感激,因为我无法相信安装路由使得无法将中间件添加到子组。
编辑:这工作得很好,只是我没有注册我称之为不受影响的路线。因此,如果其他人最终会遇到同样的问题,请知道这实际上是一种有效的方法。