如果我使用模块,而GOPATH的旧方法完美工作,那么路由对于蜜蜂来说根本不起作用。
我是golang的新手,如果做错了,请纠正我。
我一直在尝试用bee创建API项目,但是我发现所有新项目都必须使用go 1.11中发布的模块方法。
我使用bee api api-name命令来搭建新项目。它出现在GOPATH中。我将其从GOPATH路径移至另一个目录。然后我做了go mod init mod,然后我能够运行bee run,并且API已成功启动,但路由不起作用。我进行了一些比较,发现没有生成commentsRouter文件。
我做错了什么?

我尝试先做set GO111MODULE=on,然后再做go get -u github.com/beego/bee,但这并没有帮助。
现在我什至不能运行bee API,我明白了0004 Failed to build the application: main.go:4:2: package api-name/routers is not in GOROOT (c:\go\src\api-name\routers)发生什么事?我很迷惑。官方的go文档说,我应该在新项目中使用模块方法,但是我在文档中找不到关于如何在模块系统中使用和使用bee的东西。

最佳答案

只是因为缺少文件commentsRou​​ter_controllers.go。不知道在$ gopath之外运行应用程序时,beego如何不会生成文件routers/commentsRou​​ter_controllers.go。
然后,我们只能访问localhost/swagger。所有其他路径(或路由)都将全部返回404。
解决方案:
这不是一个好方法,但是有效:

  • 将$ your_project的源代码复制到$ gopath/src
  • cd $ gopath/src/$ your_project>蜜蜂运行(仅用于生成文件注释Router_controllers.go)>停止运行应用程序
  • 将文件$ gopath/src/$ your_project/routers/commentsRou​​ter_controllers.go复制到$ your_project/routes
  • cd $ your_project>蜜蜂运行

  • 祝你好运

    09-25 18:54