diff --git a/backend/database.js b/backend/database.js index 4bf88dc..1fdd5c3 100644 --- a/backend/database.js +++ b/backend/database.js @@ -1,10 +1,30 @@ +// 加载环境变量(确保在 server.js 之前也能读取) +require('dotenv').config(); + const Database = require('better-sqlite3'); const bcrypt = require('bcryptjs'); const path = require('path'); +const fs = require('fs'); const crypto = require('crypto'); +// 数据库路径配置 +// 优先使用环境变量 DATABASE_PATH,默认为 ./data/database.db +const DEFAULT_DB_PATH = path.join(__dirname, 'data', 'database.db'); +const dbPath = process.env.DATABASE_PATH + ? path.resolve(__dirname, process.env.DATABASE_PATH) + : DEFAULT_DB_PATH; + +// 确保数据库目录存在 +const dbDir = path.dirname(dbPath); +if (!fs.existsSync(dbDir)) { + fs.mkdirSync(dbDir, { recursive: true }); + console.log(`[数据库] 创建目录: ${dbDir}`); +} + +console.log(`[数据库] 路径: ${dbPath}`); + // 创建或连接数据库 -const db = new Database(path.join(__dirname, 'ftp-manager.db')); +const db = new Database(dbPath); // 启用外键约束 db.pragma('foreign_keys = ON');