// static variables and imports import express from "express"; import { loginUser, createUser, updateUser, deleteUser, getAllUsers, } from "../shared/database.js"; import dotenv from "dotenv"; import path from "path"; import { fileURLToPath } from "url"; const app = express(); dotenv.config(); const port = 4001; app.use(express.json()); app.use(express.static("public")); app.use(express.urlencoded({ extended: true })); app.set("view engine", "ejs"); const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); app.listen(port, () => { console.log(`Server is running on http://localhost:${port}`); }); // -- here comes the main code -- app.get("/", (req, res) => { res.render("index.ejs", { error: null }); }); app.post("/login", (req, res) => { loginUser(req.body.username, req.body.password).then((result) => { if (result.success) { // On successful login, render the dashboard and update latestUser res.status(200).render("userView.ejs"); } else { // On failure, re-render login page with error message res .status(401) .render("index.ejs", { error: result.message, }); } }); }); // error handling code app.use((err, req, res, next) => { // Log the error stack and send a generic error response console.error(err.stack); res.status(500).send("Something broke!"); });