Files
ai-dimension/backend/wdkj-server/README.md
T
Yuzhiran Dev 24cd9cef53 🎉 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
2026-07-10 13:26:04 +08:00

6.3 KiB
Executable File

宇之然·星辰绘线 - 后端服务

项目简介

这是宇之然·星辰绘线项目的后端服务,提供 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. 安装依赖

cd wdkj-server
npm install

2. 配置环境变量

复制 .env.example.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. 启动服务

# 开发环境
npm run dev

# 生产环境
npm start

4. 验证服务

访问健康检查接口:

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 - 获取操作日志

数据库初始化

首次启动服务时,需要初始化管理员账户:

// 可以创建一个初始化脚本
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: 错误信息

使用示例:

const logger = require('./utils/logger')

logger.info('用户登录', { openid: 'xxx' })
logger.error('数据库错误', error)

权限系统

角色权限矩阵:

角色 权限范围
super_admin 所有权限 (*)
content_manager 知识库、画廊、用户查看
shop_manager 商品、订单、用户查看
viewer 仪表盘、分析、用户查看

生产部署

使用 PM2

# 安装 PM2
npm install -g pm2

# 启动服务
pm2 start src/index.js --name wdkj-server

# 查看状态
pm2 status

# 查看日志
pm2 logs wdkj-server

使用 Docker

创建 Dockerfile:

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

构建并运行:

docker build -t wdkj-server .
docker run -p 3000:3000 -d wdkj-server

注意事项

  1. 安全: 生产环境必须修改 JWT_SECRET
  2. 数据库: 确保 MongoDB 已正确配置访问权限
  3. 支付: 微信支付需要真实的商户证书和密钥
  4. 日志: 生产环境会自动写入日志文件
  5. 限流: 已配置 API 请求频率限制

许可证

MIT License