app: logging & in-memory sqlite while in non-prod
All checks were successful
Basic Checking / Explore-Gitea-Actions (push) Successful in 30s
All checks were successful
Basic Checking / Explore-Gitea-Actions (push) Successful in 30s
The tests are currently working on my laptop, but failing on the CI
actions. 🤔
There have always been errors on it inserting animals to the database,
and now seem like it fails to get routes before the async promise is
fufilled? I'm not sure.
Switch everything to the bole logger, and not the `console.`
stuff.
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
This commit is contained in:
parent
6c0c6b071c
commit
e32d3c9233
2 changed files with 18 additions and 13 deletions
25
app.js
25
app.js
|
@ -4,15 +4,18 @@ const path = require("path");
|
||||||
const morgan = require("morgan");
|
const morgan = require("morgan");
|
||||||
const bodyParser = require("body-parser");
|
const bodyParser = require("body-parser");
|
||||||
const sqlite3 = require("sqlite3").verbose();
|
const sqlite3 = require("sqlite3").verbose();
|
||||||
|
const bole = require('bole');
|
||||||
|
const log = bole('app');
|
||||||
|
|
||||||
|
const config = require('./config');
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
// Create an SQLite database and initialize tables
|
// Create an SQLite database and initialize tables
|
||||||
const db = new sqlite3.Database("db/results.db", (err) => {
|
const db = new sqlite3.Database(config.db_path, (err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error("Error opening SQLite database:", err.message);
|
log.error("Error opening SQLite database:", err.message);
|
||||||
} else {
|
} else {
|
||||||
console.log("Connected to SQLite database");
|
log.info("Connected to SQLite database", config.db_path);
|
||||||
db.run(`
|
db.run(`
|
||||||
CREATE TABLE IF NOT EXISTS button_clicks (
|
CREATE TABLE IF NOT EXISTS button_clicks (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
@ -59,16 +62,16 @@ try {
|
||||||
[animal, animal],
|
[animal, animal],
|
||||||
(err) => {
|
(err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error(`Error inserting animal ${animal}: `, err.message);
|
log.error(`Error inserting animal ${animal}: `, err.message);
|
||||||
} else {
|
} else {
|
||||||
console.log(`Success inserting animal ${animal}`);
|
log.info(`Success inserting animal ${animal}`);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error loading animals:", error);
|
log.error("Error loading animals:", error);
|
||||||
animals = ["Dog", "Cat", "Elephant", "Lion", "Giraffe"];
|
animals = ["Dog", "Cat", "Elephant", "Lion", "Giraffe"];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,7 +91,7 @@ app.get("/getNextAnimal", async (req, res) => {
|
||||||
const randomAnimal = animals[randomIndex];
|
const randomAnimal = animals[randomIndex];
|
||||||
res.json({ animalName: randomAnimal });
|
res.json({ animalName: randomAnimal });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error fetching random animal:", error);
|
log.error("Error fetching random animal:", error);
|
||||||
res.status(500).json({ error: "Internal server error" });
|
res.status(500).json({ error: "Internal server error" });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -98,7 +101,7 @@ app.post("/recordButtonClick", (req, res) => {
|
||||||
try {
|
try {
|
||||||
//const { buttonName, sessionId } = req.body;
|
//const { buttonName, sessionId } = req.body;
|
||||||
const result = req.body;
|
const result = req.body;
|
||||||
console.error(result);
|
log.error(result);
|
||||||
|
|
||||||
db.run(
|
db.run(
|
||||||
"INSERT INTO button_clicks (session_id, animal_name, button_name, timestamp, time_difference) VALUES (?, ?, ?, ?, ?)",
|
"INSERT INTO button_clicks (session_id, animal_name, button_name, timestamp, time_difference) VALUES (?, ?, ?, ?, ?)",
|
||||||
|
@ -111,7 +114,7 @@ app.post("/recordButtonClick", (req, res) => {
|
||||||
],
|
],
|
||||||
(err) => {
|
(err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error("Error recording button click:", err.message);
|
log.error("Error recording button click:", err.message);
|
||||||
res.status(500).json({ error: "Internal server error" });
|
res.status(500).json({ error: "Internal server error" });
|
||||||
} else {
|
} else {
|
||||||
res.sendStatus(200);
|
res.sendStatus(200);
|
||||||
|
@ -119,7 +122,7 @@ app.post("/recordButtonClick", (req, res) => {
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error recording button click:", error);
|
log.error("Error recording button click:", error);
|
||||||
res.status(500).json({ error: "Internal server error" });
|
res.status(500).json({ error: "Internal server error" });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -200,7 +203,7 @@ app.get("/results", async (req, res) => {
|
||||||
await Promise.all([getCount, getTotalAvgTime, getAvgTime]);
|
await Promise.all([getCount, getTotalAvgTime, getAvgTime]);
|
||||||
res.json(results);
|
res.json(results);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error fetching results:", error);
|
log.error("Error fetching results:", error);
|
||||||
res.status(500).json({ error: "Internal server error" });
|
res.status(500).json({ error: "Internal server error" });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -9,7 +9,9 @@ config.express = {
|
||||||
|
|
||||||
if (PRODUCTION) {
|
if (PRODUCTION) {
|
||||||
config.express.ip = '0.0.0.0';
|
config.express.ip = '0.0.0.0';
|
||||||
bole.output({ level: 'debug', stream: process.stdout })
|
config.db_path = "db/results.db";
|
||||||
} else {
|
|
||||||
bole.output({ level: 'info', stream: process.stdout })
|
bole.output({ level: 'info', stream: process.stdout })
|
||||||
|
} else {
|
||||||
|
config.db_path = ":memory:";
|
||||||
|
bole.output({ level: 'debug', stream: process.stdout })
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue