Golang问答应用开发指南

Golang问答应用开发指南 我需要运行一个在GitHub上找到的项目,但遇到了很大困难。非常感谢任何帮助。谢谢!

GitHub GitHub

头像

ananyaarun/React-and-Go-quiz-app

使用React和Golang构建的测验应用程序。通过创建GitHub帐户为ananyaarun/React-and-Go-quiz-app的开发做出贡献。


更多关于Golang问答应用开发指南的实战教程也可以访问 https://www.itying.com/category-94-b0.html

7 回复

你遇到了什么问题?

更多关于Golang问答应用开发指南的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


非常感谢您的回答。您能否更具体地说明如何将IP地址实现到项目的React应用中?

顺便说一下,这个应用程序似乎写得不太好。全局变量和大量重复代码并不是高质量代码的好迹象。

你好,我对Go语言非常陌生/不熟悉。我不知道如何运行一个有用户界面的Go程序。我只写过一些基础代码并在终端中运行,但我从未做过带用户界面的程序。

你需要做的是获取正在运行的API的IP地址或主机名。在你的本地机器上,它可能是 localhost:8080,然后在你的React应用中使用它。

func main() {
    fmt.Println("hello world")
}

我认为你试图一次学习太多东西了。

在这里,你在 localhost:8080 上启动了一个 HTTP 服务器 https://github.com/ananyaarun/React-and-Go-quiz-app/blob/master/go/src/main.go#L156。要从 React 应用程序调用你的端点,例如 http://localhost:8080/question1,并使用 fetch() 方法来获取这些数据 https://reactjs.org/docs/faq-ajax.html

但我建议一次只学习一件事。也许可以先从使用已经可用的 API 开始,比如 http://dummy.restapiexample.com/,先熟悉它,然后再开始编写你自己的代码。

func main() {
    fmt.Println("hello world")
}

要运行这个React和Go的测验应用,你需要分别启动前端和后端服务。以下是具体步骤:

1. 克隆项目并进入目录

git clone https://github.com/ananyaarun/React-and-Go-quiz-app.git
cd React-and-Go-quiz-app

2. 启动后端Go服务

# 进入后端目录
cd backend

# 安装依赖
go mod download

# 运行Go服务(默认端口8080)
go run main.go

3. 启动前端React应用

# 新终端窗口,进入前端目录
cd frontend

# 安装依赖
npm install

# 启动开发服务器(默认端口3000)
npm start

4. 数据库设置

检查backend/config目录下的配置文件,确保数据库连接正确。如果需要,创建数据库:

// 数据库初始化示例(如果项目包含)
// 通常会在首次运行时自动创建表

5. 常见问题解决

端口冲突

如果端口被占用,修改配置文件:

// backend/main.go 修改端口
func main() {
    router := gin.Default()
    router.Run(":8081") // 修改端口号
}
// frontend/package.json 修改代理
"proxy": "http://localhost:8081"

依赖问题

# 清除Go模块缓存
go clean -modcache

# 重新安装前端依赖
rm -rf node_modules package-lock.json
npm install

CORS问题

如果遇到跨域错误,在Go后端添加CORS中间件:

import "github.com/gin-contrib/cors"

func main() {
    router := gin.Default()
    
    // 配置CORS
    router.Use(cors.New(cors.Config{
        AllowOrigins:     []string{"http://localhost:3000"},
        AllowMethods:     []string{"GET", "POST", "PUT", "DELETE"},
        AllowHeaders:     []string{"Origin", "Content-Type"},
        ExposeHeaders:    []string{"Content-Length"},
        AllowCredentials: true,
    }))
    
    // ... 其他代码
}

6. 验证运行

访问 http://localhost:3000 应该能看到React前端,后端API在 http://localhost:8080 运行。

如果项目结构不同,请检查项目根目录的README文件获取具体说明。运行go run main.go时确保在正确的目录下,并且所有必要的环境变量已设置。

回到顶部