| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- import devConfig from './dev.js';
- import prodConfig from './prod.js';
- if (!process.env.NODE_ENV)
- process.env.NODE_ENV='development';
- const runtimeEnv = process.env.NODE_ENV || 'development';
- const defaultInternalApiToken = runtimeEnv === 'production' ? '' : 'dev-internal-token';
- const toNumber = (value, fallback) => {
- const number = Number(value);
- return Number.isFinite(number) ? number : fallback;
- };
- // 公共数据库配置
- const commonConfig = {
- port: process.env.PORT || 3000,
- internalApiToken: process.env.INTERNAL_API_TOKEN || defaultInternalApiToken,
- errorLogging: {
- appName: process.env.ERROR_LOG_APP_NAME || 'miaoguo_system_server',
- captureConsoleError: process.env.ERROR_LOG_CAPTURE_CONSOLE !== 'false',
- exitOnFatal: process.env.ERROR_LOG_EXIT_ON_FATAL !== 'false',
- fatalExitDelayMs: toNumber(process.env.ERROR_LOG_FATAL_EXIT_DELAY_MS, 1500),
- maxPayloadLength: toNumber(process.env.ERROR_LOG_MAX_PAYLOAD_LENGTH, 8000),
- maxStackLength: toNumber(process.env.ERROR_LOG_MAX_STACK_LENGTH, 30000)
- },
- aiGeneration: {
- articleProvider: process.env.AI_GENERATION_PROVIDER || 'doubao-deepseek-v4-pro-260425',
- articleProviderVersion: process.env.AI_GENERATION_PROVIDER_VERSION || 'zdp4f',
- articleProviderContent: process.env.AI_GENERATION_PROVIDER_CONTENT || '字节deepseek_v4pro\n平均30秒生成',
- articleProviderBuildSecond: toNumber(process.env.AI_GENERATION_PROVIDER_BUILD_SECOND, 30),
- volcesMinIntervalMs: toNumber(process.env.VOLCES_AI_MIN_INTERVAL_MS, 15000),
- volcesMaxRetries: toNumber(process.env.VOLCES_AI_MAX_RETRIES, 2),
- volcesTimeoutMs: toNumber(process.env.VOLCES_AI_TIMEOUT_MS, 90000)
- },
- CDNUrl: 'https://cdn.example.com/',
- database: {
- multipleStatements: true,
- connectionLimit: 20,
- charset: "UTF8MB4_GENERAL_CI",
- decimalNumbers: true
- },
- session: {
- secrets: 'streetsnap'
- },
- wx:{
- appid:"wx46a7b4c420e6d38f",
- appsecret:"d55ea733f20ae80741744f8d49c08c4f",
- payapisecret:"021RfYHi1gl33A0zzqKi1ro2Ii1RfYHK",
- token:"Ki1ro2Ii1RfYHK",
- mch_id:1438486602,
- shulte_appid:"wxa5e33c61fe37dd01",
- shulte_appsecret:"dfd61dd4f503b9380ace12d9fcac8d30",
- SpatialIntelligence_appid:"wxaa1a8b48d9853872",
- SpatialIntelligence_appsecret:"9b6508fd6c7ab6a6f2cbe7dc0d59a1d8",
- pinyin_appid:"wx331e8dd070f01d0e",
- pinyin_appsecret:"443c398339e1b3d7a8cd3cc86dde305f",
- phonics_appid:"wxb54a6d5aff836ee3",
- phonics_appsecret:"436b8e965925d10b06bb9ba21e02fad2",
- hanzi_appid:"wx313a8f2c0741efe1",
- hanzi_appsecret:"5d5ec8a0a7496206a84f46ad28325650",
- parentsHelper_appid:"wx80059777521b897c",
- parentsHelper_appsecret:"00c22ae7febdf105820fadb7b0a8d8c4",
- yjbdc_appid:"wx80059777521b897c",
- yjbdc_appsecret:"00c22ae7febdf105820fadb7b0a8d8c4",
- math_appid:"wx1fef080f74481cbd",
- math_appsecret:"9bc93761ba8c7a270155ff4b53cc0fda",
- mathStar_appid:"wxa5441bbf344692ba",
- mathStar_appsecret:"f8f31e40d9947f4b49812544f0aabbd1",
- miaoguo_appid:"wx84b3feac6069eec3",
- miaoguo_appsecret:"ff7acb13ace612881e2b7ff178b511e9",
- web_appid:"wxed722a5486a6ead7",
- web_appsecret:"91f0ad9ad20a460c45a234b78a69ec05",
- wechatservice_appid:"wxec1a295274084e31",
- wechatservice_appsecret:"e9712de2b6c7e78341d04e06dde907bc",
- shiZiLiang_appid:"wx39bc498e7fdacb6b",
- shiZiLiang_appsecret:"c239948d6b769e281c84da212ecee9eb",
- mps_appid:"wx39bc498e7fdacb6b",
- mps_appsecret:"c239948d6b769e281c84da212ecee9eb",
- },
- QCloud:{
- SecretId: 'AKIDFI6ewyOLhplRvBozXqunR1SfdMr8nzd3',
- SecretKey: 'JQJxNYUCftsdASUGm22mGVUO6f1DCyWq',
- },
- tencentcloud:{
- secretId: "AKIDfBYjhRyLWTCl9KH3oNiplUyFPRK3dCd1",
- secretKey: "JTUK0WsBKJ8nIdopfM0TnxwkOsBJ75vp",
- },
- tencentcloudHunyuan:{
- apikey:"sk-OCrTvmGFTxAeRFr7ceco18NOarjWNvledM4yf9gROpBQvxqZ",
- },
- huoshancloud:{
- apikeyCJ:"d276e65d-4c39-49ad-a2e2-5060c30ca9a0",
- apikeyHLR:"2b7d737e-6773-4d55-ae77-da8d4e819c96",
- },
- aliyun:{
- apikeyCJ: "sk-12e38cdfe5b1477880e5c99efbd10b48",
- apikeyHLR:"sk-b3ea1a818aad4386b7f50133411fb6e8",
- },
- baiducloud:{
- apikey:"bce-v3/ALTAK-rJ28kWUiu2wE7AmSwCA6x/f7e1c801b6a569766add8f8e27223bafae158c32",
- },
- openroutercloud:{
- apikey:"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",
- },
- xfyun:{
- appid: "620d2552", // 讯飞星火APPID
- apikey: "a3be608fe7fb367adae0169324faf3aa", // 讯飞星火APIKey
- apisecret: "OTEyZTM2OWMxNjBhODdhMzQ3YmQ5Nzkw", // 讯飞星火APISecret
- version: "v1" // API版本
- },
- BufferMemoryTimeSuperLower:1,//缓存时间1秒
- BufferMemoryTimeLower:5,//缓存时间5秒
- BufferMemoryTimeLow:10,//缓存时间10秒
- BufferMemoryTimeLowNormal:30,//缓存时间30秒
- BufferMemoryTime:60,//缓存时间60秒
- BufferMemoryTime1:120,//缓存时间2分钟
- BufferMemoryTime2:300,//缓存时间5分钟
- BufferMemoryTimeHigh:3600,//缓存时间1小时
- BufferMemoryTimeHigher:86400,//缓存时间1天
- BufferMemoryTimeHighBest:604800,//缓存时间7天
- NumberOfTrials:5,//口算试用练习次数
- MiaoguoGiftDayNumber:20,
- MiaoguoGiftStartDate:'2021-03-20',
- WXServiceCharge:'0',
- IndividualIncomeTax:'0',
- AgentMoney:'30.00',
- AmbassadorMoney:'15.00',
- MaxAphorismID:475,//勤勉接力最大格言数
- MaxImageID:1135,//勤勉接力最大图片数
- UserAgent:[
- "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
- "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
- "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
- "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
- "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
- "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
- "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
- "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
- "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
- "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
- "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
- "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
- "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
- "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
- "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
- "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",
- "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
- "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
- "Mozilla/5.0 (Macintosh; U; Mac OS X Mach-O; en-US; rv:2.0a) Gecko/20040614 Firefox/3.0.0 ",
- "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.0.3) Gecko/2008092414 Firefox/3.0.3",
- "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1) Gecko/20090624 Firefox/3.5",
- "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.14) Gecko/20110218 AlexaToolbar/alxf-2.0 Firefox/3.6.14",
- "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15",
- "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1",
- "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10",
- "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/533.17.8 (KHTML, like Gecko) Version/5.0.1 Safari/533.17.8",
- "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5",
- "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0",
- "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)",
- "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)",
- "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
- ]
- };
- const env = runtimeEnv;
- const envConfig = env === 'production' ? prodConfig : devConfig;
- // 合并配置,环境特定配置会覆盖公共配置
- const config = {
- ...commonConfig,
- ...envConfig,
- database: {
- ...commonConfig.database,
- ...(envConfig.database || {})
- }
- };
- export default config;
|