From 10d7a44b4a37121d493f3a996efb278472bdd9f6 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Tue, 27 Dec 2022 15:09:28 +0100 Subject: [PATCH] Created the server index.js --- server/index.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 server/index.js diff --git a/server/index.js b/server/index.js new file mode 100644 index 0000000..7c5d62d --- /dev/null +++ b/server/index.js @@ -0,0 +1,48 @@ +const express = require('express'); +const db = require('./config/database'); +const path = require('path'); + +const app = express(); +const port = process.env.PORT || 5217; + +app.set('view engine', 'ejs'); + +// Default middleware +app.use(express.json()); + +// Middlewares which require no authentication +app.use("/api/auth", require('./routes/auth')); + +// Middlewares which require authentication +app.use("/api*", require('./middlewares/authenticate')); +app.use("/api/link", require('./routes/link')); +app.use("/api/info", require('./routes/info')); + +app.use("/api*", (req, res) => res.json({message: "Route not found"})); + +if (process.env.NODE_ENV === 'production') { + app.use("/admin", express.static(path.join(__dirname, "../admin/dist"))); + + app.get("/admin*", (req, res) => res.sendFile(path.join(__dirname, '../admin/dist', 'index.html'))); +} else { + app.get("/admin*", (req, res) => res.redirect("/")); +} + +app.use("*", require('./actions/click')); + +const run = async () => { + require('./controller/token').createToken(); + require('./controller/module').initialize(); + + await db.sync({alter: true, force: false}); + + app.listen(port, () => console.log(`Server listening on port ${port}`)); +} + +db.authenticate().then(() => { + console.log("Successfully connected to the database"); + run(); +}).catch(err => { + console.error("Could not connect to the database: " + err.message); + process.exit(111); +}); \ No newline at end of file