问题标签 [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 回答
110 浏览

go - Go 包命名

如何正确引用项目包?我有以下文件夹结构:

main.go我想从sbp.controllers. 我似乎找不到正确引用它的方法

main.go

sbp/controller.go

我尝试导入“sbp/controller”,甚至“github.com/jiewmeng/finance/sbp/controller”,但它们似乎是自动删除了我的 VSCode,所以我认为它无效?

0 投票
1 回答
1484 浏览

http - 即使 OPTIONS 返回 HTTP 200,CORS 也不起作用

我正在使用 chi 并有如下设置 cors

我的Cors中间件

在网络选项卡中,它看起来像:

在此处输入图像描述

0 投票
1 回答
3581 浏览

json - 在render.Bind中chi空http.Request.Body

我正在使用github.com/pressly/chi构建这个简单的程序,我尝试从以下内容解码一些 JSON http.Request.Body

当我不使用render.Bind()(from "github.com/pressly/chi/render") 时,它会按预期工作。

但是,当我取消注释该行err := render.Bind(r, &p)并注释该行时err := json.NewDecoder(r.Body).Decode(&p),它会恐慌EOF

2017/06/20 22:26:39 http: panic serving 127.0.0.1:39696: EOF

因此json.Decode()失败了。

我做错了什么还是在调用http.Request.Body之前已经在其他地方读过render.Bind()

0 投票
1 回答
3054 浏览

go - 生产环境中的 vue-router(与 Go 一起使用)

我想完全分离客户端和服务器,所以我创建了一个 vuejs 项目vue init webpack my-project。在这个项目中,我使用 vue-router 进行所有路由(这包括特殊路径,例如/user/SOMEID..

这是我的 routes.js 文件:

当我使用npm run dev一切正常运行应用程序时。我现在已准备好部署到云,所以我运行了npm run build. 因为我需要使用 HTTP 服务器,所以我决定也使用 Go 来做这件事。这是我的 Go 文件:

我可以加载主页 ( App.components.home) 似乎一切正常(css、图像、翻译、对服务器的调用和响应).. 但是当我尝试打开其他应该导致 404 或加载一个用户,然后我只得到404 page not found纯文本的响应(不是它应该呈现的 vue notFound 组件)..

任何想法我做错了什么以及如何解决它?


编辑:这是 main.js 文件中路由器设置的另一部分:

0 投票
1 回答
844 浏览

go - 如何在 Golang(go-chi) 路由器上同时提供“/something”和“/something/”?

我正在为我的应用程序使用 go-chi 路由器,但如果我将路由设置为“/something”,我无法使用一条路由同时提供“/something”和“/something/”

然后请求“/something/”它给我404 page not found错误。有没有办法用一条路线服务这两种情况?

0 投票
1 回答
3445 浏览

http - 特定路由上的中间件

如在 中go-chi,在单个路由级别设置中间件,而不仅仅是为所有路由全局设置

如何Login指定唯一的中间件或从通用中间件中排除?

0 投票
0 回答
503 浏览

google-app-engine - 在运行 go_app 的 appengine 上出现 404

我构建了小型 go 应用程序,我使用以下命令在本地运行它

我之前将它部署到了 Google AppEngine,但上面的方法不起作用,所以我为 Google AppEngine 创建了这个:

我使用以下内容app.yaml

该应用程序部署良好,谷歌云控制台说它正在运行,但我得到的只是“404 页面未找到”,这不是我构建的任何处理程序。AppEngine 没有报错,我在日志中只看到 404,在日志中深入挖掘我发现有些东西提到了 go app: urlMapEntry: "_go_app"

我正在使用 go-chi 路由器:

但无论我输入哪个 url,我都看不到它RootHandler正在被使用,因为它会返回一个 HTML 文件。当我尝试访问 /api 时,我也看不到NotSupportedAPIHandler它被拾起,因为这将返回带有 JSON 响应的状态 404。

奇怪的是,不久前代码工作了,我得到了 HTML 文件,使用 go_app,使用 go-chi 路由器。现在,我得到的只是找不到 404 页面。

该应用程序在本地运行良好。

我该如何调试呢?有没有什么地方我可以看到出了什么问题,或者如何app.yaml以一种认为有必要返回 404 的方式路由它。来自我的 go_app 的任何响应看起来都与我现在得到的不同,所以这就是为什么我认为失败更早,在app.yaml.

0 投票
1 回答
11942 浏览

rest - 带有查询参数的golang Chi路由器不起作用

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

但是我尝试通过邮递员到达此端点,但未找到 404

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

0 投票
1 回答
4244 浏览

go - 如何在中间件 go-chi 中获取路由

要检查授权,我需要知道授权中间件中的路由。我检查了 go-chi 的文档并这样做了:

这给了我我需要的东西。但现在显然授权通过了,所以如果已经执行了对 routepattern 处理程序的检查(将结果写入客户端)

在检查 RoutePattern() 之前,有没有其他方法可以在没有 next.ServerHTTP(w,r) 的情况下获取中间件内部的路由?

0 投票
3 回答
5095 浏览

rest - 使用路径变量测试 Chi 路线

我无法测试我的 go-chi 路线,特别是带有路径变量的路线。运行服务器go run main.go工作正常,并且对带有路径变量的路由的请求按预期运行。

当我为路由运行测试时,我总是收到 HTTP 错误:Unprocessable Entity. 注销发生的事情后articleID,似乎articleCtx无法访问路径变量。不确定这是否意味着我需要articleCtx在测试中使用,但我已经尝试过ArticleCtx(http.HandlerFunc(GetArticleID))并得到错误:

panic: interface conversion: interface {} is nil, not *chi.Context [recovered] panic: interface conversion: interface {} is nil, not *chi.Context

运行服务器:go run main.go

测试服务器:go test .

我的来源:

不知道如何继续这个。有任何想法吗?我想知道是否有net/http/httptest关于使用context测试的答案,但什么也没看到。

也是非常新的 go Go(和context包),因此非常感谢任何代码审查/最佳实践评论:)