diff --git a/config/database.js b/config/database.js index ae37333..0611221 100644 --- a/config/database.js +++ b/config/database.js @@ -1,9 +1,38 @@ const path = require('path'); +const fs = require('fs'); + +// 数据库文件路径配置 +// 在Docker环境中使用 /app/data,本地开发使用项目根目录的data文件夹 +let dbPath; +if (process.env.DB_PATH) { + // 如果设置了环境变量,使用环境变量的路径 + dbPath = process.env.DB_PATH; +} else if (fs.existsSync('/app/data')) { + // Docker容器内,使用/app/data目录 + dbPath = '/app/data/proxies.db'; +} else { + // 本地开发环境,使用项目根目录的data文件夹 + const dataDir = path.join(__dirname, '../data'); + dbPath = path.join(dataDir, 'proxies.db'); + + // 确保data目录存在 + if (!fs.existsSync(dataDir)) { + try { + fs.mkdirSync(dataDir, { recursive: true }); + } catch (error) { + console.warn('无法创建data目录,将使用项目根目录:', error.message); + // 如果创建失败,回退到项目根目录 + dbPath = path.join(__dirname, '../proxies.db'); + } + } +} + +console.log(`数据库文件路径: ${dbPath}`); const dbConfig = { development: { dialect: 'sqlite', - storage: path.join(__dirname, '../proxies.db') + storage: dbPath } }; diff --git a/src/database/db.js b/src/database/db.js index 2deca99..137c04d 100644 --- a/src/database/db.js +++ b/src/database/db.js @@ -9,15 +9,19 @@ class Database { connect() { return new Promise((resolve, reject) => { + const dbPath = config.development.storage; + console.log(`正在连接数据库: ${dbPath}`); + this.db = new sqlite3.Database( - config.development.storage, + dbPath, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, (err) => { if (err) { console.error('数据库连接失败:', err.message); + console.error('数据库路径:', dbPath); reject(err); } else { - console.log('已连接到 SQLite 数据库'); + console.log(`已连接到 SQLite 数据库: ${dbPath}`); resolve(); } } diff --git a/src/services/validator.js b/src/services/validator.js index f7c4465..33615e6 100644 --- a/src/services/validator.js +++ b/src/services/validator.js @@ -102,10 +102,11 @@ class ProxyValidator { const dataStr = typeof response.data === 'string' ? response.data : JSON.stringify(response.data); - responseData = dataStr.substring(0, 500); - if (dataStr.length > 500) { - responseData += '... (已截断)'; - } + // responseData = dataStr.substring(0, 500); + responseData = dataStr; + // if (dataStr.length > 500) { + // responseData += '... (已截断)'; + // } } catch (e) { responseData = '无法解析响应内容'; } @@ -151,10 +152,11 @@ class ProxyValidator { const dataStr = typeof response.data === 'string' ? response.data : JSON.stringify(response.data); - responseData = dataStr.substring(0, 500); - if (dataStr.length > 500) { - responseData += '... (已截断)'; - } + responseData = dataStr; + // responseData = dataStr.substring(0, 500); + // if (dataStr.length > 500) { + // responseData += '... (已截断)'; + // } } } catch (e) { responseData = '无法解析响应内容';