personal-website/server.js

43 lines
1.3 KiB
JavaScript

const PORT = 8090;
var express = require('express');
const path = require("path");
var app = express();
console.log('Starting express server on port ' + PORT);
// set the view engine to ejs
app.set('view engine', 'ejs');
app.set("views", path.join(__dirname, "views"));
// add folder for static content:
app.use(express.static(path.join(__dirname, 'assets')));
function getRootPage(req, res) {
let pageName = req.params["pageName"];
if (pageName === null || pageName === undefined) {
pageName = "index";
}
// hardcoded check for favicon as it always comes in on /favicon.ico :/
if (req.path.includes("favicon")) {
res.sendFile(pageName, { root: path.join(__dirname, "assets", "img") });
}
else {
res.render(path.join("pages", pageName));
}
}
app.get("/:pageName", getRootPage);
app.get("/", getRootPage);
app.get("/projects/:projectName", (req, res) => {
res.sendFile(req.params["projectName"], { root: path.join(__dirname, "assets", "projects") })
});
app.get("/recipes/:recipeName", (req, res) => {
let pathname = path.join("pages", "recipes", "recipe_template");
let page = path.join("partials", "md", "recipes", req.params["recipeName"])
res.render(pathname, { "page": page });
});
app.listen(PORT);