问题标签 [servemux]
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.
go - 在一个 go 程序中同时运行两个 Web 服务器
在一个 go 程序中,我想同时运行两个 Web 服务器,
显然它们将在两个不同的端口(以及必要时
的 IP 地址)上提供服务,问题出在调用http.handle
,当我尝试为 ' 注册处理程序时/' 对于第二个服务器,它恐慌并说已经有一个与'/'关联的处理程序,
我想我需要创建一个多路复用器,DefaultServeMux
我尝试使用它gorillaMux
但无法弄清楚,
在同一个程序/进程中运行两个 Web 服务器是否存在根本性错误。
更清楚地说,两个 Web 服务器中的一个用作常规 Web 服务器,我需要第二个用作 RPC 服务器,以便在集群的不同节点上运行的程序实例之间进行通信,
编辑:为了更清楚一点,这不是实际代码,而是要点
http - Go:如何组合两个(或多个)http.ServeMux?
假设您有两个 的实例http.ServeMux
,并且您希望它们在相同的端口号上提供服务,如下所示:
combinedMux
如上所述,如何编写函数?
...或者是否有另一种方法来完成同样的事情?
unit-testing - 在 Golang 中测试 HTTP 路由
我正在使用 Gorilla mux 和 net/http 包创建一些路由,如下所示
我正在尝试编写一个测试来测试这些路线。例如,我正在尝试GET
专门测试路线以获取400
返回,因此我有以下测试代码。
但是,当我运行这个测试时,我得到一个404
可以想象的,因为请求没有被正确路由。?
当我从浏览器测试这个 GET 路由时,它确实返回 a400
所以我确定测试的设置方式存在问题。
http - Golang negroni 和 http.NewServeMux() 问题
我正在运行具有以下代码的服务器:
它工作得很好。
bodmas.sum
但是当我用另一个包裹时,http handler
我总是得到“找不到文件”。流不去这条路线。
wrapper.RateLimit
定义如下。这在单独测试时按预期工作:
没有错误。关于这种行为的任何建议?如何使它工作?
go - 用于子路径路由的 Gorilla Mux
我有以下路线:
随着我的路线越来越多,管理起来变得越来越困难。
我想做类似的事情:
所有处理程序在另一个包中分开
有什么方法可以在单独的包中匹配这些路径?
谢谢,
go - Gorilla Mux 处理 curl 请求
我想使用 Gorilla mux 来处理 api 请求。
命令将类似于:
卷曲http://0.0.0.0:8000/api/myapiname/v1?number=10&target=google.com&message=hello
我正在与以下处理程序一起服务:
但是对于curl
请求,我只得到number
nottarget
和message
's的形式值
使用 Gorilla mux 处理 api 请求的正确方法是什么?我需要子路由吗?
我只想接收任何形式的http请求http://0.0.0.0:8000/api/myapiname/v1?number=10&target=google.com&message=hello
并能够将其键映射到值
谢谢!
http - 如何将 ServeMux 与 ServerConn 一起使用?
我正在创建一个网络 API,并希望人们能够使用ServeMux将请求路由到特定端点。我需要使用我自己的低级ServerConn ,而不是使用Server实例。这是因为我从同一个端口接收传入的 HTTP 请求和纯文本数据。
然而,问题是,如果我想使用我的 ServeMux 转发请求,我会使用它的ServeHTTP方法。为此,我需要提供一个 ResponseWriter,我不知道如何创建它的实例,因为它是一个接口,而不是一个结构。我应该创建自己的 ResponseWriter 结构吗?Golang 标准库是否提供了一个?还是完全有替代解决方案?
angularjs - 如果 URL 与 Go 中的任何模式都不匹配,如何提供文件?
我正在使用 Angular 2 和 Go 构建单页应用程序,在 Angular 中我使用路由。如果我打开网站,比如说,http://example.com/
Go 将为我提供我的index.html
文件,这很好,因为我写了这个:
现在我在 Angular 中有一条路由,/posts
比如说对于这条路。useAsDefault
true
http://example.com/posts
我不认为在 Go 中为每条 Angular 路由创建一个处理程序是一个好主意,因为可能有很多路由。index.html
所以我的问题是,如果请求 URL 与我在我的设置中设置的任何其他模式不匹配,我如何在 Go 中提供服务ServeMux
?
http - 什么是 http 请求多路复用器?
我一直在研究 golang,我注意到很多人使用该http.NewServeMux()
功能创建服务器,但我并不真正了解它的作用。
我读到这个:
在 go ServeMux 中是一个 HTTP 请求多路复用器。它将每个传入请求的 URL 与已注册模式列表进行匹配,并为与 URL 最匹配的模式调用处理程序。
这与仅执行以下操作有何不同:
使用多路复用的目的是什么?
go - 使 golang Gorilla CORS 处理程序工作
我在这里有相当简单的设置,如下面的代码中所述。但我无法开始CORS
工作。我不断收到此错误:
XMLHttpRequest 无法加载http://localhost:3000/signup。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“ http://localhost:8000 ”。响应具有 HTTP 状态代码 403。
我确定我在这里遗漏了一些简单的东西。
这是我的代码: