This repository has been archived on 2025-01-02. You can view files and clone it, but cannot push or open issues or pull requests.
Files
mylinks/server/index.js

53 lines
1.6 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());
app.use(express.urlencoded());
// 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/module", require('./routes/module'));
app.use("/api/user", require('./routes/user'));
app.use("/api/domains", require('./routes/domain'));
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);
});