const createError = require("http-errors"); const express = require("express"); const path = require("path"); const cookieParser = require("cookie-parser"); const logger = require("morgan"); const mongoose = require("mongoose"); require("dotenv").config(); const app = express(); // get db const mongoDB = `mongodb+srv://${process.env.USER}:${process.env.PASS}@odin.eftl02o.mongodb.net/?retryWrites=true&w=majority`; // or throw error main().catch((err) => console.log(err)); async function main() { await mongoose.connect(mongoDB); } // bootstrap app.use( "/styles/css", express.static(path.join(__dirname, "node_modules/bootstrap/dist/css")) ); // view engine setup app.set("views", path.join(__dirname, "views")); app.set("view engine", "ejs"); app.use(logger("dev")); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, "public"))); const router = require("./routes/index"); app.use("/", router); // catch 404 and forward to error handler app.use(function (req, res, next) { next(createError(404)); }); // error handler app.use(function (err, req, res, next) { // render the error page res.status(err.status || 500); res.render("error"); }); module.exports = app;