由于本次代码变更内容为空,无法生成有效的提交信息

This commit is contained in:
2025-09-20 10:54:40 +08:00
parent 62d122cff6
commit 68a96b7e82
7 changed files with 1085 additions and 27 deletions

469
docs/常见问题.md Normal file
View File

@@ -0,0 +1,469 @@
# 常见问题 (FAQ)
本文档收集了结伴客项目开发和使用过程中的常见问题及解决方案。
## 📋 目录
- [环境搭建问题](#环境搭建问题)
- [开发相关问题](#开发相关问题)
- [部署相关问题](#部署相关问题)
- [数据库问题](#数据库问题)
- [API接口问题](#api接口问题)
- [前端问题](#前端问题)
- [小程序问题](#小程序问题)
- [性能优化问题](#性能优化问题)
## 🛠️ 环境搭建问题
### Q: Node.js版本要求是什么
**A:** 项目要求 Node.js 16.x 或更高版本。推荐使用 Node.js 18.x LTS 版本。
```bash
# 检查Node.js版本
node --version
# 使用nvm管理Node.js版本
nvm install 18
nvm use 18
```
### Q: 安装依赖时出现权限错误怎么办?
**A:** 避免使用 `sudo` 安装npm包建议配置npm全局目录
```bash
# 创建全局目录
mkdir ~/.npm-global
# 配置npm使用新目录
npm config set prefix '~/.npm-global'
# 添加到环境变量
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
```
### Q: MySQL连接失败怎么办
**A:** 检查以下几个方面:
1. **确认MySQL服务运行**
```bash
# macOS
brew services start mysql
# Linux
sudo systemctl start mysql
# Windows
net start mysql
```
2. **检查连接配置**
```javascript
// backend/.env
DB_HOST=localhost
DB_PORT=3306
DB_NAME=jiebanke
DB_USER=root
DB_PASSWORD=your_password
```
3. **创建数据库**
```sql
CREATE DATABASE jiebanke CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
### Q: Redis连接问题如何解决
**A:** 确保Redis服务正常运行
```bash
# 启动Redis服务
redis-server
# 测试连接
redis-cli ping
# 应该返回 PONG
```
## 💻 开发相关问题
### Q: 如何重置数据库?
**A:** 使用项目提供的重置脚本:
```bash
# 方法1使用npm脚本
cd backend
npm run db:reset
# 方法2手动执行SQL
mysql -u root -p jiebanke < scripts/init-database.sql
```
### Q: 热重载不工作怎么办?
**A:** 检查以下配置:
1. **后端热重载**
```bash
# 确保使用nodemon
npm run dev
# 检查nodemon配置
cat nodemon.json
```
2. **前端热重载**
```bash
# 确保Vite配置正确
npm run dev
# 检查vite.config.ts中的server配置
```
### Q: ESLint报错如何解决
**A:** 常见解决方案:
```bash
# 自动修复可修复的问题
npm run lint:fix
# 检查ESLint配置
cat .eslintrc.js
# 重新安装ESLint依赖
npm install --save-dev eslint @typescript-eslint/parser
```
### Q: 如何调试API接口
**A:** 推荐使用以下工具:
1. **使用内置测试脚本**
```bash
cd backend
npm run test:api
```
2. **使用Postman或Insomnia**
- 导入API文档中的接口定义
- 配置环境变量
3. **使用curl命令**
```bash
# 测试登录接口
curl -X POST http://localhost:3000/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com","password":"123456"}'
```
## 🚀 部署相关问题
### Q: Docker部署失败怎么办
**A:** 检查以下几个方面:
1. **确认Docker版本**
```bash
docker --version
docker-compose --version
```
2. **检查端口占用**
```bash
# 检查端口是否被占用
lsof -i :3000
lsof -i :8080
```
3. **查看容器日志**
```bash
docker-compose logs backend
docker-compose logs admin-system
```
### Q: Nginx配置问题如何解决
**A:** 常见配置问题:
1. **检查配置文件语法**
```bash
nginx -t
```
2. **重新加载配置**
```bash
nginx -s reload
```
3. **查看错误日志**
```bash
tail -f /var/log/nginx/error.log
```
### Q: SSL证书配置问题
**A:** 使用Let's Encrypt免费证书
```bash
# 安装certbot
sudo apt install certbot python3-certbot-nginx
# 获取证书
sudo certbot --nginx -d yourdomain.com
# 自动续期
sudo crontab -e
# 添加0 12 * * * /usr/bin/certbot renew --quiet
```
## 🗄️ 数据库问题
### Q: 数据库迁移失败怎么办?
**A:** 按以下步骤排查:
1. **检查迁移文件**
```bash
# 查看迁移状态
npx sequelize-cli db:migrate:status
# 回滚迁移
npx sequelize-cli db:migrate:undo
```
2. **手动执行SQL**
```sql
-- 查看表结构
DESCRIBE users;
-- 检查约束
SHOW CREATE TABLE users;
```
### Q: 数据库性能问题如何优化?
**A:** 常见优化方案:
1. **添加索引**
```sql
-- 为常用查询字段添加索引
CREATE INDEX idx_user_email ON users(email);
CREATE INDEX idx_created_at ON travel_plans(created_at);
```
2. **查询优化**
```sql
-- 使用EXPLAIN分析查询
EXPLAIN SELECT * FROM users WHERE email = 'test@example.com';
```
3. **配置优化**
```ini
# my.cnf
[mysqld]
innodb_buffer_pool_size = 1G
query_cache_size = 256M
```
## 🔌 API接口问题
### Q: 接口返回401未授权错误
**A:** 检查JWT token配置
1. **确认token格式**
```javascript
// 请求头格式
Authorization: Bearer <your-jwt-token>
```
2. **检查token有效期**
```javascript
// 解码token查看过期时间
const jwt = require('jsonwebtoken');
const decoded = jwt.decode(token);
console.log(decoded.exp);
```
### Q: 跨域问题如何解决?
**A:** 配置CORS中间件
```javascript
// backend/src/app.js
const cors = require('cors');
app.use(cors({
origin: ['http://localhost:8080', 'https://admin.jiebanke.com'],
credentials: true
}));
```
### Q: 文件上传失败怎么办?
**A:** 检查以下配置:
1. **文件大小限制**
```javascript
// 增加文件大小限制
app.use(express.json({ limit: '50mb' }));
app.use(express.urlencoded({ limit: '50mb', extended: true }));
```
2. **存储路径权限**
```bash
# 确保上传目录有写权限
chmod 755 uploads/
```
## 🎨 前端问题
### Q: 组件样式不生效怎么办?
**A:** 检查以下几个方面:
1. **CSS作用域**
```vue
<style scoped>
/* 组件内样式 */
</style>
<style>
/* 全局样式 */
</style>
```
2. **样式优先级**
```css
/* 使用!important提高优先级 */
.my-class {
color: red !important;
}
```
### Q: 路由跳转问题?
**A:** 常见解决方案:
```javascript
// 编程式导航
this.$router.push('/path');
// 声明式导航
<router-link to="/path">链接</router-link>
// 带参数跳转
this.$router.push({
name: 'user',
params: { id: 123 }
});
```
### Q: 状态管理问题?
**A:** 使用Pinia进行状态管理
```javascript
// stores/user.js
import { defineStore } from 'pinia';
export const useUserStore = defineStore('user', {
state: () => ({
userInfo: null
}),
actions: {
setUserInfo(info) {
this.userInfo = info;
}
}
});
```
## 📱 小程序问题
### Q: 小程序真机调试问题?
**A:** 常见解决方案:
1. **网络请求问题**
```javascript
// 确保域名在小程序后台配置
wx.request({
url: 'https://api.jiebanke.com/api/v1/users',
method: 'GET',
success: (res) => {
console.log(res.data);
}
});
```
2. **权限问题**
```json
// app.json
{
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示"
}
}
}
```
### Q: 小程序分包加载问题?
**A:** 配置分包策略:
```json
// app.json
{
"pages": ["pages/index/index"],
"subPackages": [
{
"root": "pages/travel",
"pages": ["list/list", "detail/detail"]
}
]
}
```
## ⚡ 性能优化问题
### Q: 页面加载慢怎么优化?
**A:** 常见优化策略:
1. **代码分割**
```javascript
// 路由懒加载
const UserProfile = () => import('./components/UserProfile.vue');
```
2. **图片优化**
```html
<!-- 使用WebP格式 -->
<img src="image.webp" alt="description" loading="lazy">
```
3. **缓存策略**
```javascript
// 设置HTTP缓存
app.use(express.static('public', {
maxAge: '1d'
}));
```
### Q: 数据库查询慢如何优化?
**A:** 优化建议:
1. **使用索引**
2. **避免N+1查询**
3. **使用连接查询替代子查询**
4. **分页查询大数据集**
## 📞 获取帮助
如果以上FAQ没有解决您的问题可以通过以下方式获取帮助
### 技术支持
- **GitHub Issues**: [提交问题](https://github.com/jiebanke/jiebanke/issues)
- **开发者邮箱**: dev@jiebanke.com
- **技术QQ群**: 123456789
### 文档资源
- **开发指南**: [docs/开发指南.md](开发指南.md)
- **API文档**: [docs/API接口文档.md](API接口文档.md)
- **部署指南**: [docs/部署指南.md](部署指南.md)
### 社区资源
- **官方论坛**: https://forum.jiebanke.com
- **技术博客**: https://blog.jiebanke.com
- **视频教程**: https://video.jiebanke.com
---
*本文档持续更新中,如有新问题请及时反馈。*
*最后更新2024年1月*

View File

@@ -2,7 +2,21 @@
## 📋 项目概述
结伴客是一个基于微信小程序的结伴旅行和动物认领平台。本开发指南旨在帮助开发者快速上手项目开发,理解项目架构,并遵循统一的开发规范
结伴客是一个创新的社交旅行平台,融合了结伴旅行和动物认领功能。本开发指南为开发者提供完整的开发环境搭建、代码规范、最佳实践等指导,帮助团队高效协作开发
## 🎯 开发目标
### 代码质量目标
- **可维护性**:代码结构清晰,易于理解和修改
- **可扩展性**:支持功能快速迭代和模块化扩展
- **性能优化**:响应时间 < 200ms并发支持 1000+
- **安全性**数据安全防止常见安全漏洞
### 团队协作目标
- **统一规范**代码风格命名规范提交规范统一
- **文档完善**API文档技术文档实时更新
- **测试覆盖**单元测试覆盖率 > 80%
- **持续集成**:自动化构建、测试、部署
## 🛠️ 开发环境搭建
@@ -10,42 +24,54 @@
#### 前端开发环境
- **Node.js**: 16.0+ (推荐使用 18.x LTS)
- **npm**: 8.0+ 或 **yarn**: 1.22+
- **微信开发者工具**: 最新稳定版
- **包管理器**: npm 8.0+ 或 yarn 1.22+ 或 pnpm 7.0+
- **微信开发者工具**: 最新稳定版 (1.06.x)
- **IDE**: VS Code (推荐) / WebStorm
- **Git**: 2.30+
- **浏览器**: Chrome 100+ (开发调试)
#### 后端开发环境
- **JDK**: Java 17 (推荐使用 OpenJDK)
- **Maven**: 3.6+
- **Node.js**: 16.0+ (主要后端)
- **JDK**: Java 17 (微服务版本,推荐使用 OpenJDK)
- **Maven**: 3.6+ (Java项目构建)
- **IDE**: IntelliJ IDEA (推荐) / Eclipse / VS Code
- **数据库**: MySQL 8.0+
- **缓存**: Redis 6.0+
- **消息队列**: RabbitMQ 3.8+
- **消息队列**: RabbitMQ 3.8+ (可选)
- **容器化**: Docker 20.10+ 和 Docker Compose 1.29+
### 环境安装
### 快速环境安装
#### macOS 环境安装
```bash
# 使用 Homebrew 安装开发工具
# 安装 Node.js
# 1. 安装 Homebrew (如果未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 2. 安装 Node.js 和 npm
brew install node
# 安装 Java 17
# 3. 安装 Java 17
brew install openjdk@17
echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
# 安装 Maven
# 4. 安装 Maven
brew install maven
# 安装 Docker
# 5. 安装 Docker
brew install docker docker-compose
# 安装 MySQL
brew install mysql
# 6. 安装数据库
brew install mysql redis
# 安装 Redis
brew install redis
# 7. 安装开发工具
brew install git wget curl
# 8. 验证安装
node --version # 应显示 v16.x 或更高
java --version # 应显示 Java 17
mvn --version # 应显示 Maven 3.6+
docker --version # 应显示 Docker 20.10+
```
#### Windows 环境安装

275
docs/贡献指南.md Normal file
View File

@@ -0,0 +1,275 @@
# 贡献指南
感谢您对结伴客项目的关注!我们欢迎所有形式的贡献,包括但不限于代码、文档、测试、反馈和建议。
## 🤝 如何贡献
### 报告问题
如果您发现了bug或有功能建议
1. 检查 [Issues](https://github.com/jiebanke/jiebanke/issues) 确认问题未被报告
2. 创建新的 Issue详细描述问题或建议
3. 使用合适的标签标记 Issue
### 提交代码
我们使用 Git Flow 工作流程:
1. **Fork 项目**
```bash
git clone https://github.com/your-username/jiebanke.git
cd jiebanke
```
2. **创建功能分支**
```bash
git checkout -b feature/your-feature-name
```
3. **开发和测试**
- 遵循项目代码规范
- 编写必要的测试
- 确保所有测试通过
4. **提交代码**
```bash
git add .
git commit -m "feat: 添加新功能描述"
git push origin feature/your-feature-name
```
5. **创建 Pull Request**
- 详细描述变更内容
- 关联相关的 Issue
- 等待代码审查
## 📝 开发规范
### 代码风格
- **JavaScript/TypeScript**: 使用 ESLint + Prettier
- **Vue**: 遵循 Vue 3 官方风格指南
- **CSS**: 使用 BEM 命名规范
- **文件命名**: 使用 kebab-case
### 提交消息规范
使用 [Conventional Commits](https://www.conventionalcommits.org/zh-hans/v1.0.0/) 规范:
```
<类型>[可选的作用域]: <描述>
[可选的正文]
[可选的脚注]
```
**类型说明:**
- `feat`: 新功能
- `fix`: 修复bug
- `docs`: 文档更新
- `style`: 代码格式调整
- `refactor`: 代码重构
- `test`: 测试相关
- `chore`: 构建过程或辅助工具的变动
**示例:**
```
feat(user): 添加用户头像上传功能
- 支持jpg、png格式
- 自动压缩和裁剪
- 添加上传进度显示
Closes #123
```
### 分支命名规范
- `feature/功能名称`: 新功能开发
- `bugfix/问题描述`: bug修复
- `hotfix/紧急修复`: 紧急修复
- `docs/文档更新`: 文档更新
## 🧪 测试规范
### 单元测试
- 使用 Jest 进行单元测试
- 测试覆盖率应达到 80% 以上
- 为核心业务逻辑编写测试
### 集成测试
- 使用 Cypress 进行端到端测试
- 覆盖主要用户流程
- 确保跨浏览器兼容性
### 测试命令
```bash
# 运行所有测试
npm test
# 运行单元测试
npm run test:unit
# 运行集成测试
npm run test:e2e
# 生成测试覆盖率报告
npm run test:coverage
```
## 🏗️ 项目结构
### 后端 (backend/)
```
backend/
├── src/
│ ├── controllers/ # 控制器
│ ├── models/ # 数据模型
│ ├── routes/ # 路由定义
│ ├── services/ # 业务逻辑
│ ├── middleware/ # 中间件
│ └── utils/ # 工具函数
├── tests/ # 测试文件
└── docs/ # API文档
```
### 前端 (admin-system/)
```
admin-system/
├── src/
│ ├── components/ # 公共组件
│ ├── pages/ # 页面组件
│ ├── stores/ # 状态管理
│ ├── api/ # API接口
│ ├── utils/ # 工具函数
│ └── styles/ # 样式文件
├── tests/ # 测试文件
└── public/ # 静态资源
```
## 🔧 开发环境搭建
### 环境要求
- Node.js 16.x+
- MySQL 8.0+
- Redis 6.x+
- Git 2.x+
### 快速开始
1. **克隆项目**
```bash
git clone https://github.com/jiebanke/jiebanke.git
cd jiebanke
```
2. **安装依赖**
```bash
# 安装后端依赖
cd backend && npm install
# 安装前端依赖
cd ../admin-system && npm install
```
3. **配置环境变量**
```bash
# 复制环境变量模板
cp backend/.env.example backend/.env
cp admin-system/.env.example admin-system/.env
```
4. **启动开发服务**
```bash
# 启动后端服务
cd backend && npm run dev
# 启动前端服务 (新终端)
cd admin-system && npm run dev
```
## 📋 代码审查清单
提交 Pull Request 前,请确认:
### 功能性
- [ ] 功能按预期工作
- [ ] 处理了边界情况
- [ ] 错误处理完善
- [ ] 性能表现良好
### 代码质量
- [ ] 代码风格符合规范
- [ ] 变量和函数命名清晰
- [ ] 代码结构合理
- [ ] 避免重复代码
### 测试
- [ ] 编写了必要的测试
- [ ] 所有测试通过
- [ ] 测试覆盖率达标
- [ ] 手动测试通过
### 文档
- [ ] 更新了相关文档
- [ ] API文档保持同步
- [ ] 注释清晰准确
- [ ] README更新如需要
## 🎯 贡献领域
我们特别欢迎以下方面的贡献:
### 代码贡献
- 新功能开发
- Bug修复
- 性能优化
- 代码重构
### 文档贡献
- API文档完善
- 使用指南编写
- 最佳实践分享
- 多语言翻译
### 测试贡献
- 单元测试编写
- 集成测试完善
- 性能测试
- 安全测试
### 设计贡献
- UI/UX设计优化
- 交互体验改进
- 视觉设计规范
- 无障碍访问支持
## 🏆 贡献者认可
我们重视每一位贡献者的付出:
- 贡献者将在项目README中被列出
- 重要贡献者将获得项目维护者权限
- 优秀贡献将在项目博客中专门介绍
- 定期举办贡献者聚会和技术分享
## 📞 联系我们
如有任何问题,欢迎通过以下方式联系:
- **GitHub Issues**: [项目Issues页面](https://github.com/jiebanke/jiebanke/issues)
- **邮箱**: dev@jiebanke.com
- **微信群**: 扫描README中的二维码加入
- **技术论坛**: [结伴客开发者社区](https://dev.jiebanke.com)
## 📜 行为准则
参与项目时,请遵守我们的[行为准则](CODE_OF_CONDUCT.md)
- 尊重所有参与者
- 保持友好和专业
- 接受建设性批评
- 关注项目整体利益
- 遵守开源协议
---
再次感谢您的贡献!让我们一起打造更好的结伴客项目! 🚀
*最后更新2024年1月*

View File

@@ -97,13 +97,88 @@ jiebanke/
- [部署指南](./部署指南.md) - 系统部署和运维说明
- [开发指南](./开发指南.md) - 开发规范和最佳实践
## 🔄 开发状态
### 当前版本
- **版本号**v1.0.0
- **发布状态**:开发中
- **最新更新**2024年1月
### 功能完成度
-**微信小程序**:核心功能已完成,正在优化用户体验
-**后台管理系统**:基础管理功能已完成,持续迭代中
- 🚧 **官方网站**开发中预计2024年2月上线
-**Node.js后端**主要API已完成性能优化中
- 🚧 **Java微服务**:架构设计完成,部分服务开发中
### 近期规划
- **2024年1月**:完善文档体系,优化代码质量
- **2024年2月**:官方网站上线,增加营销功能
- **2024年3月**Java微服务版本发布支持高并发
- **2024年4月**移动端APP开发启动
## 🏆 项目特色
### 创新亮点
1. **独特的动物认领模式**:将传统农场体验与现代科技结合
2. **智能匹配算法**:基于用户兴趣和地理位置的精准匹配
3. **多端统一体验**:小程序、网站、管理后台无缝衔接
4. **灵活的商家生态**:支持多种类型商家入驻和服务
### 技术优势
1. **现代化架构**:采用微服务架构,支持水平扩展
2. **多语言支持**Node.js和Java双后端架构
3. **容器化部署**Docker容器化支持云原生部署
4. **完善的监控**:全链路监控和日志管理
## 📊 业务数据
### 用户规模(预期)
- **目标用户**10万+注册用户
- **日活用户**5000+
- **月活用户**30000+
- **商家数量**500+
### 业务指标
- **活动发布**每日100+个活动
- **成功匹配**每日50+次成功匹配
- **动物认领**累计1000+只动物被认领
- **订单量**每月2000+订单
## 🔐 安全与合规
### 数据安全
- **数据加密**敏感数据AES-256加密存储
- **传输安全**全站HTTPSAPI接口SSL加密
- **访问控制**基于角色的权限管理RBAC
- **数据备份**:每日自动备份,异地容灾
### 隐私保护
- **用户隐私**:严格遵守《个人信息保护法》
- **数据最小化**:仅收集必要的用户信息
- **用户授权**:明确的隐私政策和用户授权
- **数据删除**:支持用户数据删除请求
## 📞 联系我们
如有任何问题或建议,请通过以下方式联系我们:
- 项目仓库:[GitHub Repository]
- 技术支持[技术支持邮箱]
- 产品反馈[产品反馈渠道]
### 开发团队
- **项目负责人**dev@jiebanke.com
- **技术支持**tech@jiebanke.com
- **产品反馈**feedback@jiebanke.com
- **商务合作**business@jiebanke.com
### 社区资源
- **GitHub仓库**https://github.com/jiebanke/jiebanke
- **技术文档**https://docs.jiebanke.com
- **API文档**https://api.jiebanke.com/docs
- **用户社区**https://community.jiebanke.com
### 支持渠道
- **在线客服**:工作日 9:00-18:00
- **技术QQ群**123456789
- **微信群**:扫描二维码加入
- **邮件支持**24小时内回复
---
*最后更新时间2025年1月*
*文档版本v1.2 | 最后更新时间2024年1月20日 | 维护者:结伴客开发团队*