妙果系统服务端是一个基于 Node.js 和 Koa 框架构建的后端服务,提供多种教育相关 API 服务,包括拼音、汉字、数学计算、自然拼读等多个教育领域的功能支持。系统采用模块化设计,支持多种微信小程序应用的后端服务需求。
miaoguo_system_server/
├── src/ # 源代码目录
│ ├── api/ # API 模块目录
│ │ ├── common/ # 通用 API
│ │ ├── hanzi/ # 汉字学习 API
│ │ ├── mathcalculate/ # 数学计算 API
│ │ ├── mps/ # MPS 相关 API
│ │ ├── phonics/ # 自然拼读 API
│ │ ├── pinyin/ # 拼音学习 API
│ │ ├── web/ # Web 相关 API
│ │ └── yjbdc/ # 英语百词斩 API
│ ├── config/ # 配置文件目录
│ │ ├── dev.js # 开发环境配置
│ │ ├── env.js # 环境变量配置
│ │ ├── index.js # 主配置文件
│ │ └── prod.js # 生产环境配置
│ ├── middleware/ # 中间件目录
│ │ ├── queryParamSanitizer.js # 查询参数清理中间件
│ │ └── upload.js # 文件上传中间件
│ ├── model/ # 数据模型目录
│ │ ├── BufferMemoryClass.js # 缓存管理类
│ │ ├── commonModel.js # 通用模型
│ │ ├── hanzi.js # 汉字学习模型
│ │ ├── mathcalculate.js # 数学计算模型
│ │ ├── mathstar.js # 数学之星模型
│ │ ├── mps.js # MPS 模型
│ │ ├── phonics.js # 自然拼读模型
│ │ ├── pinyin.js # 拼音学习模型
│ │ └── yjbdc.js # 英语百词斩模型
│ ├── util/ # 工具类目录
│ │ ├── db.js # 数据库工具
│ │ ├── GlobalCache.js # 全局缓存工具
│ │ ├── stringClass.js # 字符串处理工具
│ │ ├── WXBizDataCrypt.js # 微信数据解密工具
│ │ ├── constant/ # 常量定义
│ │ └── crypto/ # 加密解密工具
│ ├── test/ # 测试目录
│ └── app.js # 应用入口文件
├── public/ # 静态资源目录
├── scripts/ # 脚本目录
├── doc/ # 文档目录
└── package.json # 项目依赖配置
应用入口文件负责初始化 Koa 应用实例,配置中间件,注册路由,并启动 HTTP 服务器。主要功能包括:
每个 API 模块通常包含两个主要文件:
API 模块按功能领域划分,包括:
配置管理采用环境分离的方式,通过 process.env.NODE_ENV 区分开发环境和生产环境:
配置内容包括:
系统使用多个中间件增强功能和安全性:
数据模型层负责与数据库交互和业务数据处理:
系统包含多个工具类,提供通用功能:
系统采用模块化设计,便于扩展新功能:
系统支持开发和生产两种环境部署:
npm run dev 启动,加载开发配置npm start 启动,加载生产配置服务器要求:
系统使用 console.log 进行基本日志记录,关键点包括: