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
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
|