GoLang自定义包导入问题

问题描述 投票:0回答:2

我正在学习 GoLang,遇到了一个问题。

我用

go mod init main

创建了mod文件

接下来我创建了如下所示的控制器和 Routes 文件夹,

在 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 go-gin
2个回答
1
投票
  1. 通过编辑
    go.mod
    修改模块路径:
- module main
+ module example.com/hello
  1. 修改导入路径:
  import (
-     "main/controllers"
+     "example.com/hello/controllers"

      "github.com/gin-gonic/gin"
  )

(这是 q 快速回答。我正在搜索文档来解释原因)。


0
投票

使用这个命令

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())
}
© www.soinside.com 2019 - 2024. All rights reserved.