我尝试重构main.go并将代码分成不同的文件。
所以我将controller.go设为包控制器。
但是我无法将此本地包导入到main.go。
article
├ client
├ api
│ ├ main.go
│ └ contoroller
│ └ contoroller.go
├ nginx
└ docker-compose.yml
・client: react/axios
・api: golang/gin
・web-server: nginx
・db: mysql
・container: docker
・ci-tool: travis
・deploy: aws elastic beanstalk
main.go
package main
import (
"./contoroller"
)
controller := controller.controller{}
api := router.Group("/api")
{
api.GET("/articles", func(c *gin.Context) {
controller.getArticleController(c, db)
})
}
router.Run(":2345")
}
controller.go
package controller
import (
)
func getArticleController(c *gin.Context, db *sql.DB) {
}
我希望导入包控制器。
但是实际不是。
undefined: controller
答案 0 :(得分:0)
我通过将article
复制到$GOPATH/src/github.com/[user]/
答案 1 :(得分:-1)
如果要在包外使用该功能,则必须重命名对象。首字母应大写,而代码应在下一个
package main
import (
"./contoroller"
)
api := router.Group("/api")
{
api.GET("/articles", func(c *gin.Context) {
controller.GetArticleController(c, db)
})
}
router.Run(":2345")
}
控制器
package controller
import (
)
func GetArticleController(c *gin.Context, db *sql.DB) {
}