You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

95 lines
2.3 KiB

/**
* 应用主配置文件
* 统一管理所有配置项
*/
// 移除循环依赖,在应用启动时验证环境变量
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