# cursor-test **Repository Path**: shifone/cursor-test ## Basic Information - **Project Name**: cursor-test - **Description**: nodejs for - **Primary Language**: NodeJS - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-19 - **Last Updated**: 2025-09-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Koa 多数据源应用 这是一个基于 Koa.js 的 Node.js 应用程序,支持 MySQL 和 PostgreSQL 数据库。 ## 功能特点 - 基于 Koa.js 框架 - 支持 MySQL 和 PostgreSQL 数据库,可通过配置选择 - 使用连接池管理数据库连接 - 包含日志记录功能 - 环境变量配置(基于.env文件) - 支持多环境配置(开发、测试、生产) - 开发环境热重载 ## 安装 1. 克隆项目 ```bash git clone [your-repository-url] cd koa-multi-db ``` 2. 安装依赖 ```bash npm install ``` 3. 配置环境变量 ```bash cp .env.example .env ``` 然后编辑 `.env` 文件,填入您的数据库配置信息。 ## 环境变量配置 应用使用.env文件进行配置,主要的配置项包括: ``` # 应用配置 PORT=3000 NODE_ENV=development # 数据库类型选择 (mysql 或 postgres) DB_TYPE=mysql # MySQL 配置 MYSQL_HOST=localhost MYSQL_PORT=3306 MYSQL_USER=root MYSQL_PASSWORD=password MYSQL_DATABASE=test # PostgreSQL 配置 POSTGRES_HOST=localhost POSTGRES_PORT=5432 POSTGRES_USER=postgres POSTGRES_PASSWORD=password POSTGRES_DATABASE=test # 日志配置 LOG_LEVEL=info LOG_DIR=logs ``` ### 多环境配置 系统支持多环境配置文件,按照以下优先级自动加载: 1. `.env` - 基础配置,所有环境共享 2. `.env.local` - 本地覆盖配置(除测试环境外不提交到git) 3. `.env.[NODE_ENV]` - 特定环境配置(如 `.env.production`) 4. `.env.[NODE_ENV].local` - 特定环境本地覆盖配置(不提交到git) 后加载的文件配置会覆盖先加载的文件配置。 例如,要配置生产环境的数据库连接,可以创建 `.env.production` 文件: ``` # 生产环境使用PostgreSQL DB_TYPE=postgres POSTGRES_HOST=production-db-server POSTGRES_PASSWORD=prod-secure-password ``` 使用不同环境运行应用: ```bash # 开发环境 npm run dev # 生产环境 NODE_ENV=production npm start ``` ## 运行 开发环境: ```bash npm run dev ``` 生产环境: ```bash npm start ``` ## 项目结构 ``` . ├── src/ │ ├── app.ts # 应用入口文件 │ ├── config/ # 配置文件 │ │ ├── env.ts # 环境变量配置 │ │ └── database.ts # 数据库配置 │ ├── routes/ # 路由文件 │ └── utils/ # 工具函数 ├── .env.example # 环境变量示例 ├── package.json └── README.md ``` ## API 文档 ### 健康检查 - GET `/health` - 返回服务器状态和时间戳 ## 开发 1. 添加新路由: - 在 `src/routes/` 目录下创建新的路由文件 - 在 `src/routes/index.ts` 中引入并使用 2. 数据库操作: - 使用 `ctx.getDbPool()` 获取当前配置的数据库连接池 - 数据库类型可以通过 `ctx.dbType` 查看 3. 配置管理: - 所有的环境配置都在 `src/config/env.ts` 中集中管理 - 在应用中可以通过 `import { config } from './config/env.js'` 获取配置 ## 许可证 MIT