import express from "express"; import cookieParser from "cookie-parser"; import bodyParser from "body-parser"; import {getUser, loginUser} from "./login.js"; const server = express(); server.set('view engine', 'ejs') server.use(express.static("static")) server.use(cookieParser()) server.use(bodyParser.urlencoded({ extended: true })) server.use(handle) const sbstart = '
' const sbbasic = ' Home Dashboard ' const sblogout = ' Log out ' const sbend = "
" const indexSidebar = sbstart + sbbasic + sbend async function handle_other(req, res) { if(req.method === "POST" && req.path === "/login" && req.body.username && req.body.password) { let user = await loginUser(req.body.username, req.body.password) if(user) { res.cookie("token", user.token).redirect("/dashboard") } else { res.status(403).render("login", {sidebar: indexSidebar, error: "Wrong username or password!"}) } return } res.sendStatus(400) } async function handle(req, res) { if(req.method !== "GET") return handle_other(req, res); console.log(`received request of ${req.path}`) if(req.path == "/") { res.render("index", {sidebar: indexSidebar}) return } if(req.path == "/dashboard") { let user = await getUser(req.cookies.token) if(user) { res.render("dashboard", {sidebar: sbstart + sbbasic + sblogout + sbend, user}) } else { res.status(401).redirect("/login") } return; } if(req.path === "/login") { res.render("login", {sidebar: indexSidebar, error: null}) return } if(req.path === "/logout") { res.clearCookie("token").redirect("/") return } res.status(404).render("404") } server.listen(40080)