fixed a bit

This commit is contained in:
bobbert committed 2025-03-11 17:21:46 +00:00
1 parent c6aef07b61
commit d69bee427b
13 files changed
+961 -153

No files matched your search

+65 -14
View File
@@ -1,18 +1,69 @@
const Database = require('better-sqlite3');
// lib/db.js
let sqlite3;
// Initialize the database connection
const db = new Database('./clue_hunt.db');
// Helper function to run queries
function query(sql, params) {
try {
const stmt = db.prepare(sql);
return params ? stmt.all(params) : stmt.all();
} catch (err) {
console.error('Error executing query:', err);
throw err;
}
// Only import sqlite3 on server-side
if (typeof window === 'undefined') {
sqlite3 = require('sqlite3').verbose();
}
// Initialize the database connection
function getDb() {
if (!sqlite3) {
console.error('Cannot access SQLite on the client side');
return null;
}
module.exports = { query };
return new sqlite3.Database('./clue_hunt.db', (err) => {
if (err) {
console.error('Error opening database:', err.message);
} else {
console.log('Connected to the SQLite database.');
}
});
}
// Helper function to run queries with results
async function query(sql, params = []) {
if (typeof window !== 'undefined') {
throw new Error('Database queries cannot be executed on the client side');
}
const db = getDb();
return new Promise((resolve, reject) => {
db.all(sql, params, (err, rows) => {
if (err) {
reject(err);
} else {
resolve(rows);
}
db.close(); // Close the database connection
});
});
}
// Helper for single row queries
async function queryOne(sql, params = []) {
const rows = await query(sql, params);
return rows && rows.length > 0 ? rows[0] : null;
}
// Helper for insert/update/delete operations
async function run(sql, params = []) {
if (typeof window !== 'undefined') {
throw new Error('Database operations cannot be executed on the client side');
}
const db = getDb();
return new Promise((resolve, reject) => {
db.run(sql, params, function(err) {
if (err) {
reject(err);
} else {
resolve({ lastID: this.lastID, changes: this.changes });
}
db.close(); // Close the database connection
});
});
}
module.exports = { query, queryOne, run };