Implement dynamic database path configuration in database.js, enhancing compatibility with Docker and local development environments. Update db.js to log the database connection path. Remove response data truncation in validator.js for improved readability.

This commit is contained in:
theluyuan 2025-10-31 10:32:44 +08:00
parent da140d5415
commit 6abae17fea
3 changed files with 46 additions and 11 deletions

View File

@ -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
}
};

View File

@ -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();
}
}

View File

@ -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 = '无法解析响应内容';