Golang代码无法解析GitHub链接实现MVC架构怎么办

Golang代码无法解析GitHub链接实现MVC架构怎么办 大家好,

我正在尝试构建一个MVC(模型、视图、控制器)架构。我已经将代码放在了我的GitHub仓库链接中,如下所述。但是,代码显示错误,或者更确切地说,代码无法构建,因为其中引用的GitHub链接存在问题,如下方截图所示。

代码的GitHub仓库链接:golangprojectpractice/MVC at master · sgarg2023/golangprojectpractice · GitHub

我正在跟随练习的Udemy课程链接:第5个视频:https://www.udemy.com/course/golang-the-ultimate-guide-to-microservices-in-go-part-1/learn/lecture/15555976#questions/19959048

我在构建代码时遇到的错误:

image


更多关于Golang代码无法解析GitHub链接实现MVC架构怎么办的实战教程也可以访问 https://www.itying.com/category-94-b0.html

2 回复

错误:无法在代码中识别服务的 GitHub 链接。

image

我的控制器代码如下:

image

更多关于Golang代码无法解析GitHub链接实现MVC架构怎么办的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


你的代码无法构建是因为 go.mod 文件中声明的模块路径与实际的 GitHub 仓库路径不匹配。具体来说,go.mod 中定义的模块是 example.com/mvc,但你的代码中却导入了 github.com/sgarg2023/golangprojectpractice/MVC/controller 这样的路径。

在 Go 模块中,导入路径必须与 go.mod 中定义的模块路径保持一致,或者使用 replace 指令进行重定向。以下是解决方案:

1. 修改 go.mod 文件(推荐)

go.mod 中的模块路径改为你的 GitHub 仓库路径。在你的项目根目录(MVC/)中,修改 go.mod 文件如下:

module github.com/sgarg2023/golangprojectpractice/MVC

go 1.21

然后更新所有内部导入,确保它们基于这个新的模块路径。例如,在 main.go 中:

package main

import (
    "github.com/sgarg2023/golangprojectpractice/MVC/controller"
    "github.com/sgarg2023/golangprojectpractice/MVC/model"
)

2. 使用 replace 指令(临时方案)

如果你不想修改模块路径,可以在 go.mod 中添加 replace 指令,将本地路径映射到 GitHub 路径。但这通常只适用于本地开发:

module example.com/mvc

go 1.21

replace github.com/sgarg2023/golangprojectpractice/MVC => /你的本地路径/golangprojectpractice/MVC

然后在代码中导入时使用 github.com/sgarg2023/golangprojectpractice/MVC/controller

3. 运行命令同步依赖

修改 go.mod 后,在项目根目录运行以下命令来同步依赖并清理缓存:

go mod tidy
go clean -modcache

示例:修正后的项目结构

以下是修正后的关键文件示例:

go.mod:

module github.com/sgarg2023/golangprojectpractice/MVC

go 1.21

main.go:

package main

import (
    "github.com/sgarg2023/golangprojectpractice/MVC/controller"
    "github.com/sgarg2023/golangprojectpractice/MVC/model"
)

func main() {
    m := model.NewModel("Hello MVC")
    c := controller.NewController(m)
    c.UpdateView()
}

controller/controller.go:

package controller

import (
    "fmt"
    "github.com/sgarg2023/golangprojectpractice/MVC/model"
)

type Controller struct {
    model *model.Model
}

func NewController(m *model.Model) *Controller {
    return &Controller{model: m}
}

func (c *Controller) UpdateView() {
    fmt.Printf("View updated with: %s\n", c.model.GetData())
}

model/model.go:

package model

type Model struct {
    data string
}

func NewModel(data string) *Model {
    return &Model{data: data}
}

func (m *Model) GetData() string {
    return m.data
}

完成这些修改后,在项目根目录运行 go build 应该能成功构建。如果仍有问题,请检查所有导入语句是否已更新为正确的路径。

回到顶部