aboutsummaryrefslogtreecommitdiff
path: root/db.js
diff options
context:
space:
mode:
Diffstat (limited to 'db.js')
-rw-r--r--db.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/db.js b/db.js
new file mode 100644
index 0000000..244e9a6
--- /dev/null
+++ b/db.js
@@ -0,0 +1,42 @@
+const mariadb = require("mariadb");
+const fs = require("fs");
+
+class DB {
+ constructor() {
+ this.pool = mariadb.createPool({
+ host: process.env.DBHost,
+ user: process.env.DBUser,
+ password: process.env.DBPassword,
+ database: process.env.DBName,
+ });
+ this.init();
+ }
+
+ connect() {
+ return this.pool.getConnection();
+ }
+
+ init() {
+ fs.readFile(__dirname + "/tables.sql", "utf8", async (err, data) => {
+ if (err) throw err;
+ const queries = data.split(";");
+ queries.pop();
+ const conn = await this.connect();
+ for (const query of queries) await conn.query(query);
+ console.log("Tables created!");
+ });
+ }
+
+ async query(query, params) {
+ const conn = await this.connect();
+ try {
+ return await conn.query(query, params);
+ } catch (e) {
+ throw e;
+ } finally {
+ conn.release();
+ }
+ }
+}
+
+module.exports = new DB();