我正在学习 GoLang,遇到了一个问题。
我用
go mod init main
创建了mod文件
在 mod 文件中,模块看起来像这样
module main
现在,当我尝试将控制器导入路由器时,出现导入错误。
我一直在做下面的事情。 尝试 - 1
import (
"$GOPATH/controllers"
"github.com/gin-gonic/gin"
)
它给
invalid import path: "$GOPATH/controllers"syntax
错误
尝试 - 2
import (
"$GOPATH/main/controllers"
"github.com/gin-gonic/gin"
)
同样的错误
尝试 - 3
import (
"main/controllers"
"github.com/gin-gonic/gin"
)
controller.go
package controllers;
import (
"fmt"
"github.com/gin-gonic/gin"
)
func HealthCheck() gin.HandlerFunc {
return func (c *gin.Context) {
fmt.Println("reached controller")
}
}
router.go
package routes
import (
"bootcamp.com/server/controllers"
"github.com/gin-gonic/gin"
)
func UserRouters(inComingRoutes *gin.Engine) {
inComingRoutes.GET("/api/health", controllers.HealthCheck());
}
像这样抛出错误,
could not import main/controllers (no required module provides package "main/controllers")
我坚持了 3-4 个小时,谁能建议我如何将该控制器导入我的路线。
提前致谢。
go.mod
修改模块路径:- module main
+ module example.com/hello
import (
- "main/controllers"
+ "example.com/hello/controllers"
"github.com/gin-gonic/gin"
)
(这是 q 快速回答。我正在搜索文档来解释原因)。
使用这个命令
go mod tidy
修改你的users.routes.go
package routes
import (
"main/contollers"
"github.com/gin-gonic/gin"
)
func UserRouters(inComingRoutes *gin.Engine) {
inComingRoutes.GET("/api/health", controllers.HealthCheck())
}