草庐IT

go-mocket

全部标签

go - 如果未提供证书,单元测试 tls.LoadX509KeyPair 将失败

cert,err:=tls.LoadX509KeyPair(os.Getenv("CERT"),os.Getenv("KEY"))iferr!=nil{returnerr}我想为包含这段代码的函数编写单元测试。但是,我的测试环境永远不会有os.Getenv("CERT")/os.Getenv("KEY")中的任何内容。这使得代码(tls.LoadX509KeyPair())返回一个错误,这不允许我测试函数。我应该如何模拟/修改此代码段? 最佳答案 这通过为certFile和keyFile定义变量然后在测试环境中覆盖它们来实现。//.

go - 操作数中出现意外的 "="

我在Hugo主题中遇到此错误并修改了代码以使用Hugo文档中的一个简单示例,但仍然遇到错误。unexpected"="inoperand雨果版HugoStaticSiteGeneratorv0.40.1linux/amd64BuildDate:2018-04-25T17:16:11ZGo版本goversiongo1.12linux/amd64我直接从GoHugo-Append复制了这段代码示例。错误ERROR2019/03/1109:24:53theme/partials/work.html:template:theme/partials/work.html:3:unexpected"

go - 文件未使用go上传到目录

我正在尝试使用下面的代码将文件上传到目录。source我遇到的问题是,当我运行代码时,它会打印文件已成功上传但是当我到达目录时,没有文件上传到那里。任何解决方案将不胜感激。谢谢packagemainimport("fmt""io""net/http""os")funcuploadHandler(whttp.ResponseWriter,r*http.Request){//theFormFilefunctiontakesinthePOSTinputidfilefile,header,err:=r.FormFile("file")iferr!=nil{fmt.Fprintln(w,err)

go - 无法将 String 转换为 *net.TCPlistener 类型

我想将字符串放入net.Listener中,但出现错误:./server.go:26:23:cannotusemainServer(typeinterface{})astypestringinargumenttonet.Listen:needtypeassertion./server.go:27:28:cannotusegpServer(typeinterface{})astypestringinargumenttonet.Listen:needtypeassertion这是我的代码:viper.SetConfigFile("config.json")viper.AddConfigPa

go - 更新结构中的 map[string]*struct 变量

packagemainimport"fmt"typeStatestringconst(//PASScheckpassed.PASSState="PASS"//FAILcheckfailed.FAIL="FAIL"//WARNcouldnotcarryoutcheck.WARN="WARN"//INFOinformationalmessageINFO="INFO"//SKIPfortestsskippedSKIP="SKIP")//SummaryLevelWiseisasummaryofresultsofcontrolchecksrunCISLevelwisetypeSomethings

go - 将 dep 用于 golang 时如何从 vendor 文件夹中排除内部依赖项

我有一个项目依赖于内部git存储库中的另外两个项目。它已经存在于GOPATH中。我面临的问题是,dep-init-gopath仍会复制vendor/目录下的那些项目。因此,我使用的GoLandIDE很困惑从哪里解决依赖关系。(我希望它从GOPATH而不是Vendor目录解析)如果我删除vendor/目录,程序将运行。我的Gopkg.toml文件如下所示:[[constraint]]branch="master"name="github.com/sirupsen/logrus"[[constraint]]branch="master"name="github.com/stretchr/t

go - 如何向 http.Request 添加额外的 header 以跟踪问题

这个问题在这里已经有了答案:Howtosetheadersinhttpgetrequest?(4个答案)关闭3年前。在golang中,http.client似乎不存在钩子(Hook)方法,所以我想知道如何在框架中添加额外的header,如trace-id:xxx.理想的代码如下://thisfuncaddahookmethodtohttp-clienttorewriteheaderclient:=buildWithRewriteHeaderHook()//customRequesthasno`trace-id`client.Do(customRequest)//remoteserver

go - GO 应用程序在管道中时如何提示用户输入

我的GO应用程序需要从管道接收输入,同时必须提示用户输入密码。因为我不喜欢在命令参数中设置密码,所以我想像sudo命令一样实现它。如果我尝试从标准输入读取,我将收到最后一个命令输出作为密码(很明显)。我也尝试过使用这个库https://github.com/howeyc/gopass但它只从标准输入中读取。有没有办法在GO中做到这一点? 最佳答案 你不能,这与go无关。当您通过管道传输到一个程序时,您是将一个程序的标准输出定向到该程序的标准输入,而不是tty(标准输入通常附加到什么)。一个程序只能获得一个标准输入,因此您不能既接收来

go - 如何编码数据并在 websocket 上发送?

在调试服务器端代码时:typemyStructstruct{keystringvaluestring}key,value:=gen()data:=myStruct{key,value}myJSON,err:=json.Marshal(data)err=conn.WriteMessage(websocket.TextMessage,myJSON)gen()用字符串填充key和valuemyJSON显示:在websocket上写入myJSON后,客户端收到空的json:ws.onmessage=function(evt){console.log(evt.data)};为什么conn.Wri

go - 主机 key 不匹配

我正在尝试使用Go连接到远程服务器。这就是我正在使用的:(SSHHandshakecomplainsaboutmissinghostkey)key,err:=ioutil.ReadFile("/Users/pankaj/.ssh/id_rsa")iferr!=nil{log.Fatalf("unabletoreadprivatekey:%v",err)}//CreatetheSignerforthisprivatekey.signer,err:=ssh.ParsePrivateKey(key)iferr!=nil{log.Fatalf("unabletoparseprivatekey: