🎉 feat: initialize 宇之然AI维度 project
- uni-app Vue3 frontend with dark glassmorphism theme - 5 AI dimensions: Origin / Development / Current / Learning / Trend - AI Chat system prompt updated from geometry to AI - 23 AI knowledge articles initialized in DB - Trend API + cron job for daily news - Product pricing (Pro ¥19.9, VIP ¥39.9) - Pinia stores + API utilities - AGENTS.md documentation
This commit is contained in:
Executable
+263
@@ -0,0 +1,263 @@
|
||||
# 宇之然·星辰绘线 - 后端服务
|
||||
|
||||
## 项目简介
|
||||
|
||||
这是宇之然·星辰绘线项目的后端服务,提供 RESTful API 接口,支持微信小程序和后台管理系统。
|
||||
# 1. 查找占用指定端口的进程ID
|
||||
netstat -tunlp | grep :3001
|
||||
# 2. 根据进程ID kill进程
|
||||
kill -9 进程ID
|
||||
|
||||
## 技术栈
|
||||
|
||||
- **运行时**: Node.js 18+
|
||||
- **框架**: Express.js 4.18
|
||||
- **数据库**: MongoDB (Mongoose ODM)
|
||||
- **认证**: JWT
|
||||
- **安全**: Helmet, CORS, Rate Limit
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
wdkj-server/
|
||||
├── src/
|
||||
│ ├── config/ # 配置文件
|
||||
│ │ └── database.js # 数据库连接
|
||||
│ ├── middleware/ # 中间件
|
||||
│ │ └── auth.js # 认证中间件
|
||||
│ ├── models/ # 数据模型
|
||||
│ │ ├── User.js # 用户模型
|
||||
│ │ ├── Order.js # 订单模型
|
||||
│ │ ├── Gallery.js # 画廊模型
|
||||
│ │ ├── Knowledge.js # 知识库模型
|
||||
│ │ ├── ShopItem.js # 商品模型
|
||||
│ │ ├── Admin.js # 管理员模型
|
||||
│ │ └── AdminLog.js # 操作日志模型
|
||||
│ ├── routes/ # 路由
|
||||
│ │ ├── auth.js # 认证路由
|
||||
│ │ ├── user.js # 用户路由
|
||||
│ │ ├── payment.js # 支付路由
|
||||
│ │ ├── gallery.js # 画廊路由
|
||||
│ │ ├── knowledge.js # 知识库路由
|
||||
│ │ ├── admin.js # 管理后台路由
|
||||
│ │ └── index.js # 路由汇总
|
||||
│ ├── utils/ # 工具函数
|
||||
│ │ ├── response.js # 统一响应
|
||||
│ │ ├── logger.js # 日志工具
|
||||
│ │ └── weixin.js # 微信API工具
|
||||
│ └── index.js # 主入口
|
||||
├── logs/ # 日志目录
|
||||
├── .env # 环境变量
|
||||
├── package.json # 项目配置
|
||||
└── README.md # 项目说明
|
||||
```
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 1. 安装依赖
|
||||
|
||||
```bash
|
||||
cd wdkj-server
|
||||
npm install
|
||||
```
|
||||
|
||||
### 2. 配置环境变量
|
||||
|
||||
复制 `.env.example` 为 `.env` 并修改配置:
|
||||
|
||||
```env
|
||||
# 服务配置
|
||||
PORT=3000
|
||||
NODE_ENV=development
|
||||
|
||||
# MongoDB 配置
|
||||
MONGODB_URI=mongodb://wdkj123:wdkj123@192.168.136.130:27017/wdkj?authSource=wdkj
|
||||
|
||||
# JWT 配置
|
||||
JWT_SECRET=your_secret_key_here
|
||||
JWT_EXPIRE=7d
|
||||
|
||||
# 微信小程序配置
|
||||
WX_APPID=wxdad62baf4ccd09e3
|
||||
WX_SECRET=your_wx_app_secret
|
||||
|
||||
# 微信支付配置
|
||||
WX_PAY_MCH_ID=1108945993
|
||||
WX_PAY_API_KEY=your_apiv3_key
|
||||
```
|
||||
|
||||
### 3. 启动服务
|
||||
|
||||
```bash
|
||||
# 开发环境
|
||||
npm run dev
|
||||
|
||||
# 生产环境
|
||||
npm start
|
||||
```
|
||||
|
||||
### 4. 验证服务
|
||||
|
||||
访问健康检查接口:
|
||||
|
||||
```bash
|
||||
curl http://localhost:3000/health
|
||||
```
|
||||
|
||||
## API 文档
|
||||
|
||||
### 认证相关
|
||||
|
||||
- `POST /api/auth/login` - 小程序登录
|
||||
- `POST /api/auth/admin/login` - 管理员登录
|
||||
- `GET /api/auth/me` - 获取当前用户信息
|
||||
|
||||
### 用户相关
|
||||
|
||||
- `GET /api/user/progress` - 获取用户进度
|
||||
- `POST /api/user/progress` - 保存用户进度
|
||||
- `GET /api/user/leaderboard` - 获取排行榜
|
||||
|
||||
### 支付相关
|
||||
|
||||
- `POST /api/payment/create-order` - 创建订单
|
||||
- `POST /api/payment/callback` - 支付回调
|
||||
- `POST /api/payment/verify` - 验证支付
|
||||
- `GET /api/payment/products` - 获取商品列表
|
||||
|
||||
### 画廊相关
|
||||
|
||||
- `GET /api/gallery` - 获取作品列表
|
||||
- `POST /api/gallery` - 上传作品
|
||||
- `GET /api/gallery/:id` - 获取作品详情
|
||||
- `POST /api/gallery/:id/like` - 点赞作品
|
||||
|
||||
### 知识库相关
|
||||
|
||||
- `GET /api/knowledge` - 获取知识列表
|
||||
- `GET /api/knowledge/:id` - 获取知识详情
|
||||
- `POST /api/knowledge/:id/collect` - 收藏知识
|
||||
- `GET /api/knowledge/:dim/questions` - 获取问答
|
||||
|
||||
### 管理后台
|
||||
|
||||
- `GET /api/admin/dashboard` - 获取仪表盘数据
|
||||
- `GET /api/admin/users` - 获取用户列表
|
||||
- `GET /api/admin/users/:id` - 获取用户详情
|
||||
- `GET /api/admin/knowledge` - 获取知识列表
|
||||
- `POST /api/admin/knowledge` - 创建/更新知识
|
||||
- `POST /api/admin/knowledge/review` - 审核知识
|
||||
- `GET /api/admin/gallery` - 获取画廊作品
|
||||
- `POST /api/admin/gallery/review` - 审核作品
|
||||
- `GET /api/admin/orders` - 获取订单列表
|
||||
- `GET /api/admin/shop` - 获取商品列表
|
||||
- `POST /api/admin/shop` - 保存商品
|
||||
- `GET /api/admin/logs` - 获取操作日志
|
||||
|
||||
## 数据库初始化
|
||||
|
||||
首次启动服务时,需要初始化管理员账户:
|
||||
|
||||
```javascript
|
||||
// 可以创建一个初始化脚本
|
||||
const Admin = require('./src/models/Admin')
|
||||
|
||||
async function initAdmin() {
|
||||
const admin = new Admin({
|
||||
username: 'admin',
|
||||
password: 'admin123456',
|
||||
email: 'admin@wdkj.com',
|
||||
role: 'super_admin',
|
||||
permissions: ['*']
|
||||
})
|
||||
await admin.save()
|
||||
}
|
||||
```
|
||||
|
||||
## 开发指南
|
||||
|
||||
### 代码规范
|
||||
|
||||
- 使用 ES6+ 语法
|
||||
- 异步操作使用 async/await
|
||||
- 错误统一通过 ApiResponse 处理
|
||||
- 所有操作记录日志
|
||||
|
||||
### 日志系统
|
||||
|
||||
日志级别:
|
||||
- `debug`: 调试信息
|
||||
- `info`: 常规信息
|
||||
- `warn`: 警告信息
|
||||
- `error`: 错误信息
|
||||
|
||||
使用示例:
|
||||
|
||||
```javascript
|
||||
const logger = require('./utils/logger')
|
||||
|
||||
logger.info('用户登录', { openid: 'xxx' })
|
||||
logger.error('数据库错误', error)
|
||||
```
|
||||
|
||||
### 权限系统
|
||||
|
||||
角色权限矩阵:
|
||||
|
||||
| 角色 | 权限范围 |
|
||||
|------|----------|
|
||||
| super_admin | 所有权限 (*) |
|
||||
| content_manager | 知识库、画廊、用户查看 |
|
||||
| shop_manager | 商品、订单、用户查看 |
|
||||
| viewer | 仪表盘、分析、用户查看 |
|
||||
|
||||
## 生产部署
|
||||
|
||||
### 使用 PM2
|
||||
|
||||
```bash
|
||||
# 安装 PM2
|
||||
npm install -g pm2
|
||||
|
||||
# 启动服务
|
||||
pm2 start src/index.js --name wdkj-server
|
||||
|
||||
# 查看状态
|
||||
pm2 status
|
||||
|
||||
# 查看日志
|
||||
pm2 logs wdkj-server
|
||||
```
|
||||
|
||||
### 使用 Docker
|
||||
|
||||
创建 `Dockerfile`:
|
||||
|
||||
```dockerfile
|
||||
FROM node:18-alpine
|
||||
WORKDIR /app
|
||||
COPY package*.json ./
|
||||
RUN npm ci --only=production
|
||||
COPY . .
|
||||
EXPOSE 3000
|
||||
CMD ["npm", "start"]
|
||||
```
|
||||
|
||||
构建并运行:
|
||||
|
||||
```bash
|
||||
docker build -t wdkj-server .
|
||||
docker run -p 3000:3000 -d wdkj-server
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **安全**: 生产环境必须修改 JWT_SECRET
|
||||
2. **数据库**: 确保 MongoDB 已正确配置访问权限
|
||||
3. **支付**: 微信支付需要真实的商户证书和密钥
|
||||
4. **日志**: 生产环境会自动写入日志文件
|
||||
5. **限流**: 已配置 API 请求频率限制
|
||||
|
||||
## 许可证
|
||||
|
||||
MIT License
|
||||
Reference in New Issue
Block a user