Fixed db bug

The DB was moved to a different file and was returning a reference of the DB. When uploading a new database the original variable containing the DB in the DB file was not updating. Added setters and getters.
This commit is contained in:
2025-05-17 11:11:07 +03:00
parent f54d50674c
commit daadd58a5d
3 changed files with 34 additions and 20 deletions
+15 -1
View File
@@ -4,6 +4,7 @@ const db_conf = require("../config/db.conf");
var db;
function connect() {
try {
logger.info("Connecting to Database...");
db = new Database(db_conf.path, { fileMustExist: true });
@@ -11,5 +12,18 @@ try {
} catch (error) {
logger.error(error.message);
}
}
module.exports = db;
function getDB() {
return db;
}
function setDB(newDb) {
db = newDb;
}
module.exports = {
connect,
getDB,
setDB,
};
+11 -11
View File
@@ -25,7 +25,7 @@ router.delete("/remove", async (req, res) => {
if (req.query["element"]) {
try {
const remove = db.prepare(`DELETE FROM ${db_conf.table_name} WHERE Name='${req.query["element"]}';`);
const remove = db.getDB().prepare(`DELETE FROM ${db_conf.table_name} WHERE Name='${req.query["element"]}';`);
if (remove.run()["changes"]) {
res.status(200).send();
} else {
@@ -48,15 +48,15 @@ router.post("/upload", async (req, res) => {
} else {
const uploadedFile = req.files.file;
if (db) {
db.close();
if (db.getDB()) {
db.getDB().close();
}
fs.copyFile(uploadedFile.tempFilePath, db_conf.path, (error) => {
if (error) {
logger.error(error);
} else {
try {
db = new Database(db_conf.path, { fileMustExist: true });
db.setDB(new Database(db_conf.path, { fileMustExist: true }));
} catch (error) {
logger.error(error);
}
@@ -90,7 +90,7 @@ router.post("/add", async (req, res) => {
if (values) {
values = values.slice(0, -1);
const update = db.prepare(`INSERT INTO ${db_conf.table_name} VALUES (${values});`);
const update = db.getDB().prepare(`INSERT INTO ${db_conf.table_name} VALUES (${values});`);
update.run();
res.status(200).send();
} else {
@@ -123,7 +123,7 @@ router.post("/edit", async (req, res) => {
if (values) {
values = values.slice(0, -1);
const update = db.prepare(`UPDATE ${db_conf.table_name} SET ${values} WHERE Name='${req.query["element"]}'`);
const update = db.getDB().prepare(`UPDATE ${db_conf.table_name} SET ${values} WHERE Name='${req.query["element"]}'`);
update.run();
res.status(200).send();
} else {
@@ -142,7 +142,7 @@ router.get("/add", async (req, res) => {
logger.info(`${req.method}: "${req.url}" => ${req.get("User-Agent")}`);
try {
const select_get = db.prepare(`SELECT * FROM ${db_conf.table_name};`);
const select_get = db.getDB().prepare(`SELECT * FROM ${db_conf.table_name};`);
const row = select_get.get();
const sql_header = Object.keys(row);
@@ -154,7 +154,7 @@ router.get("/add", async (req, res) => {
for (const key of sql_header) {
table_header += `<th>${key}</th>\n`;
const select_distinct = db.prepare(`
const select_distinct = db.getDB().prepare(`
SELECT DISTINCT ${key}
FROM ${db_conf.table_name};
`);
@@ -200,7 +200,7 @@ router.get("/edit", async (req, res) => {
if (req.query["element"]) {
try {
const select_get = db.prepare(`SELECT * FROM ${db_conf.table_name} WHERE Name='${req.query["element"]}';`);
const select_get = db.getDB().prepare(`SELECT * FROM ${db_conf.table_name} WHERE Name='${req.query["element"]}';`);
const row = select_get.get();
if (row) {
@@ -212,7 +212,7 @@ router.get("/edit", async (req, res) => {
for (const key of sql_header) {
table_header += `<th>${key}</th>\n`;
const select_distinct = db.prepare(`
const select_distinct = db.getDB().prepare(`
SELECT DISTINCT ${key}
FROM ${db_conf.table_name}
WHERE ${key} IS NOT NULL
@@ -268,7 +268,7 @@ router.get("/", async (req, res) => {
logger.info(`${req.method}: "${req.url}" => ${req.get("User-Agent")}`);
try {
const select = db.prepare(`SELECT * FROM ${db_conf.table_name}`);
const select = db.getDB().prepare(`SELECT * FROM ${db_conf.table_name}`);
const rows = select.all();
if (rows[0]) {
+2 -2
View File
@@ -41,7 +41,7 @@ app.set("view engine", "ejs");
app.set("views", path.join(__dirname, app_conf.views_directory));
const server = app.listen(app_conf.port, () => {
logger.info("Starting Database Editor.");
db.connect();
fs.rm(path.join(__dirname, app_conf.temp_directory, "/."), { recursive: true }, (error) => {
if (error == null) {
logger.info("Removed temp directory.");
@@ -73,7 +73,7 @@ function shutdown() {
shutting_down = true;
logger.info("Closing Database connection.");
try {
db.close();
db.getDB().close();
} catch (error) {
logger.error(error.message);
}