# Koa用户管理API 这是一个基于Koa.js的简单用户管理API示例,使用MySQL作为数据库。 ## 功能特点 - 基于Koa.js框架 - 使用ES模块语法 - MySQL数据库连接 - RESTful API设计 - 环境配置分离 ## 安装 ### Node.js 版本要求 本项目需要 Node.js 24.1.0 版本。如果你使用 nvm,可以按照以下步骤设置: ```bash # 安装所需的 Node.js 版本(如果尚未安装) nvm install 24.1.0 # 切换到项目所需的 Node.js 版本 nvm use ``` 如果你没有安装 nvm,可以从 [Node.js 官网](https://nodejs.org/) 下载并安装 24.1.0 版本。 ### 项目安装 ```bash # 克隆仓库 git clone https://scoreline.kylx365.com/kylx365/miaoguo_system_server.git cd miaoguo_system_server # 确保使用正确的 Node.js 版本 nvm use # 安装依赖 npm install ``` ## 数据库设置 1. 确保MySQL服务已启动 2. 执行初始化SQL脚本: ```bash mysql -u root -p < doc/init.sql ``` 错误日志表可以手动初始化,也会在服务启动后自动尝试创建: ```bash mysql -u root -p kylx365_db < doc/system_error_logs.sql ``` ## 环境变量 可以通过环境变量自定义配置: - `NODE_ENV`: 设置环境 (`development` 或 `production`) - `PORT`: 服务器端口 - `DB_HOST`: 数据库主机 - `DB_USER`: 数据库用户名 - `DB_PASSWORD`: 数据库密码 - `DB_NAME`: 数据库名称 - `INTERNAL_API_TOKEN`: 内部错误日志 API token,生产环境必须配置 - `ERROR_LOG_CAPTURE_CONSOLE`: 是否采集 `console.error`,默认 `true` - `ERROR_LOG_EXIT_ON_FATAL`: 捕获进程级 fatal error 后是否退出交给 PM2 重启,默认 `true` - `ERROR_LOG_API_URL`: 本机轮询脚本访问的错误日志 API 地址 - `ERROR_LOG_API_TOKEN`: 本机轮询脚本使用的内部 token - `ERROR_LOG_START_FROM_BEGINNING`: 本机轮询脚本首次运行时是否从 ID 0 拉取历史错误,默认 `false` ## 运行 ```bash # 开发环境 npm run dev # 生产环境 npm run start # 服务器上采集 PM2 error log npm run error-log:pm2 # 本机轮询内部错误日志 API ERROR_LOG_API_URL=https://your-domain/internal/error-logs ERROR_LOG_API_TOKEN=your-token npm run error-log:poll ``` 内部错误日志接口: ```bash curl -H "x-internal-token: your-token" "http://localhost:3050/internal/error-logs?since_id=0&status=all" curl -H "x-internal-token: your-token" -X POST "http://localhost:3050/internal/error-logs/1/mark-fixed" ``` 完整错误日志采集和本机检查配置见: ```bash doc/server_error_log_monitor.md ``` ## API端点 ## 示例请求 ### 查看API是否能运行 ```bash curl http://localhost:3000/api/Ping ```