48 lines
1.4 KiB
JavaScript
48 lines
1.4 KiB
JavaScript
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);
|
|
}); |