const express = require("express"); const bodyParser = require("body-parser"); const path = require("path"); const morgan = require("morgan"); const dbConnection = require("./util/dbConnection"); const fs = require("fs"); const cors = require("cors"); require('dotenv').config() // credentials const port = process.env.PORT // Router const search = require("./routes/search"); const regions = require("./routes/regions"); const countries = require("./routes/countries"); const climate = require("./routes/climate"); const app = express(); (async () => { try { const dbConn = await dbConnection(); // Express middleware app.use(morgan("dev")); app.use(express.static(path.join(__dirname, "../../dist"))); app.use(bodyParser.json()); app.use(cors()); // Express routes app.use(search(dbConn)); app.use(regions(dbConn)); app.use(countries(dbConn)); app.use(climate(dbConn)); app.use((err, req, res, next) => { // 500 if (true) { next(); } else { res.status(500).send(); } }); // Start webserver app.listen(port, () => { console.log(`Travopti backend listening at http://localhost:${port}`) }); } catch (error) { // TODO: logging console.error("Failed to start the webserver"); console.error(error); } })();