2025-03-29 00:31:25 +01:00
|
|
|
// --- Imports ---
|
2025-03-10 10:18:36 +01:00
|
|
|
|
|
|
|
const express = require("express");
|
|
|
|
const app = express();
|
|
|
|
const fs = require("fs");
|
|
|
|
const path = require("path");
|
2025-03-29 00:31:25 +01:00
|
|
|
const { getDatabase, connectDatabase } = require('./src/database/index');
|
|
|
|
const handleError = require('./src/middleware/errors');
|
2025-03-10 10:18:36 +01:00
|
|
|
|
2025-03-29 00:31:25 +01:00
|
|
|
// --- Define constants ---
|
2025-03-10 10:18:36 +01:00
|
|
|
|
2025-03-10 22:51:57 +01:00
|
|
|
const config_folder = "config";
|
2025-03-10 10:18:36 +01:00
|
|
|
const config_file_name = "config.json"
|
2025-03-10 22:51:57 +01:00
|
|
|
const data_folder = "data";
|
2025-03-10 10:18:36 +01:00
|
|
|
const sqlite_file_name = "sqlite.db"
|
|
|
|
|
|
|
|
const default_port = 8000
|
|
|
|
|
|
|
|
// --- Load configuration ---
|
|
|
|
|
|
|
|
// var declaration
|
|
|
|
let db;
|
|
|
|
let config;
|
|
|
|
|
|
|
|
// Load config
|
|
|
|
try {
|
|
|
|
config = JSON.parse(fs.readFileSync(path.join(config_folder, config_file_name)));
|
|
|
|
console.debug("Loaded config");
|
|
|
|
} catch (err) {
|
|
|
|
console.error("Couldn't read config file: ", err);
|
|
|
|
process.exit(1);
|
|
|
|
}
|
|
|
|
|
|
|
|
// vars definition
|
|
|
|
const port = config.port || default_port;
|
|
|
|
console.debug("Port: ", port);
|
|
|
|
|
|
|
|
// Database connection
|
2025-03-29 00:31:25 +01:00
|
|
|
db = connectDatabase(config.database);
|
2025-03-10 10:18:36 +01:00
|
|
|
|
|
|
|
// --- Routing ---
|
|
|
|
|
2025-03-29 00:31:25 +01:00
|
|
|
app.use("/", require("./src/routes/root"));
|
2025-03-10 22:51:57 +01:00
|
|
|
app.use("/mods", require("./src/routes/mods"));
|
2025-03-10 10:18:36 +01:00
|
|
|
|
2025-03-29 00:31:25 +01:00
|
|
|
// -- Error handling ---
|
|
|
|
|
|
|
|
app.use(handleError);
|
|
|
|
|
2025-03-10 10:18:36 +01:00
|
|
|
// --- Launch ---
|
|
|
|
|
|
|
|
app.listen(port, () => {
|
2025-03-10 22:51:57 +01:00
|
|
|
console.log("Server listening on port " + port + "...");
|
2025-03-10 10:18:36 +01:00
|
|
|
})
|