/** * 应用主配置文件 * 统一管理所有配置项 */ // 移除循环依赖,在应用启动时验证环境变量 const config = { base: "/", // 服务器配置 server: { port: process.env.PORT || 3000, host: process.env.HOST || 'localhost', env: process.env.NODE_ENV || 'development' }, // 安全配置 security: { keys: process.env.SESSION_SECRET?.split(",").map(secret => secret.trim()) || [], jwtSecret: process.env.JWT_SECRET, saltRounds: 10 }, // 数据库配置 database: { client: 'sqlite3', connection: { filename: process.env.DB_PATH }, useNullAsDefault: true, migrations: { directory: './src/infrastructure/database/migrations' }, seeds: { directory: './src/infrastructure/database/seeds' } }, // 日志配置 logger: { level: process.env.LOG_LEVEL || 'info', appenders: { console: { type: 'console' }, file: { type: 'file', filename: process.env.LOG_FILE || './logs/app.log', maxLogSize: 10485760, // 10MB backups: 3 } }, categories: { default: { appenders: ['console', 'file'], level: process.env.LOG_LEVEL || 'info' } } }, // 缓存配置 cache: { type: 'memory', // 支持 'memory', 'redis' ttl: 300, // 默认5分钟 redis: { host: process.env.REDIS_HOST || 'localhost', port: process.env.REDIS_PORT || 6379, password: process.env.REDIS_PASSWORD } }, // 任务调度配置 jobs: { enabled: process.env.JOBS_ENABLED !== 'false', timezone: process.env.TZ || 'Asia/Shanghai' }, // 视图配置 views: { extension: 'pug', root: './src/presentation/views', options: { basedir: './src/presentation/views' } }, // 静态资源配置 static: { root: './public', maxAge: process.env.NODE_ENV === 'production' ? 86400000 : 0, // 生产环境1天,开发环境不缓存 immutable: process.env.NODE_ENV === 'production' } } export default config