本项目基于Go语言实现了一个中文RSS搜索案例,并提供了React前端界面。项目主要功能是从国内新闻RSS源中搜索指定关键词的新闻内容,并以友好的方式展示结果。
- 需求分析:将英文搜索案例修改为中文搜索案例,替换为国内RSS源,并创建前端界面展示搜索结果
- 技术选型:
- 后端:Go语言(保持原项目语言)
- 前端:React + Vite(现代前端技术栈,快速构建)
- 实施策略:先完成后端本地化修改,再构建前端界面
- GOROOT:Go 安装路径(默认 C:\Go,安装程序自动设置)
- GOPATH:工作区路径(建议自定义,如 D:\go_workspace)
- PATH:添加 %GOROOT%\bin 和 %GOPATH%\bin
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
go env | findstr "GOPROXY"
将原项目中的英文RSS源替换为国内中文新闻源: 替换的国内RSS源包括:腾讯新闻、网易新闻、新浪新闻、澎湃新闻、界面新闻、凤凰新闻和36氪。
将main.go中的搜索关键词从英文"president"修改为中文"中国",并翻译相关注释。
修改以下文件中的英文日志和错误信息为中文:
- rss.go:搜索日志和HTTP错误信息
- search.go:匹配器注册日志
- match.go:结果显示格式
# 在项目根目录下执行
npm create vite@latest frontend -- --template react# 设置npm国内源
npm config set registry https://registry.npmmirror.com
# 安装依赖
cd frontend
npm install修改App.jsx文件,实现包含搜索框、搜索按钮和结果展示区域的中文RSS搜索界面。
修改App.css文件,为搜索界面提供现代、简洁的样式。
# 进入sample目录
cd chapter2/sample
# 运行后端程序
go run main.go# 进入frontend目录
cd frontend
# 运行前端开发服务器
npm run dev-
npm源问题:
- 问题:淘宝npm镜像证书过期
- 解决方案:切换到阿里云npm镜像
https://registry.npmmirror.com
-
vite命令找不到问题:
- 问题:全局vite命令不可用
- 解决方案:使用项目内安装的vite
node_modules/.bin/vite
go-in-action/
├── chapter2/
│ └── sample/
│ ├── data/
│ │ └── data.json # RSS源配置
│ ├── main.go # 程序入口
│ ├── matchers/
│ │ └── rss.go # RSS匹配器实现
│ └── search/
│ ├── match.go # 匹配器接口和结果显示
│ └── search.go # 搜索逻辑实现
├── frontend/
│ ├── index.html # 前端入口HTML
│ ├── package.json # 前端依赖配置
│ ├── src/
│ │ ├── App.css # 搜索界面样式
│ │ ├── App.jsx # 搜索界面前端实现
│ │ └── main.jsx # 前端入口文件
│ └── vite.config.js # Vite配置
└── README.md # 项目说明文档
- 确保已安装Go和Node.js
- 运行后端程序:
cd chapter2/sample && go run main.go - 运行前端服务器:
cd frontend && npm run dev - 在浏览器中打开前端页面(默认地址:http://localhost:5173)
- 在搜索框中输入关键词(如"中国"),点击搜索按钮查看结果
- 实现真实后端API接口,替换模拟数据
- 添加搜索结果过滤和排序功能
- 优化前端界面响应式设计
- 添加用户认证和个性化设置
- 实现搜索历史记录功能