const sqlite3 = require('sqlite3').verbose(); const path = require('path'); const dbPath = path.resolve(__dirname, 'data', 'database.sqlite'); const db = new sqlite3.Database(dbPath); /** * Promise 기반으로 DB 쿼리를 실행합니다. * @param {string} sql - 실행할 SQL 쿼리 * @param {Array} params - SQL에 바인딩할 파라미터 배열 * @returns {Promise} */ function query(sql, params = []) { return new Promise((resolve, reject) => { db.all(sql, params, (err, rows) => { if (err) { console.error('DB 쿼리 오류:', sql, params); return reject(err); } resolve(rows); }); }); } /** * 단일 INSERT, UPDATE, DELETE 쿼리를 실행합니다. * @param {string} sql * @param {Array} params * @returns {Promise} */ function run(sql, params = []) { return new Promise((resolve, reject) => { db.run(sql, params, function (err) { if (err) { console.error('DB 실행 오류:', sql, params); return reject(err); } // this.lastID, this.changes를 resolve 할 수도 있음 resolve(); }); }); } module.exports = { query, run };