This repository was archived by the owner on Dec 13, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.ts
More file actions
104 lines (84 loc) · 2.2 KB
/
index.ts
File metadata and controls
104 lines (84 loc) · 2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
// @ts-types="@types/express"
import express from "express";
import handlebars from "express-handlebars";
import bodyParser from "body-parser";
import dayjs from "dayjs";
import utc from "dayjs/plugin/utc.js";
dayjs.extend(utc);
const app = express();
const logDate = dayjs().utcOffset(0, false);
Deno.env.set("LOG_FILE", logDate.format("MM-DD-YYYY") + ".log")
try {
Deno.mkdirSync("logs")
} catch {
console.log("Logs folder already made!");
}
const hbs = handlebars.create({
extname: ".hbs",
helpers: {
css(aString: string) {
return `css/${aString}-css`;
},
},
});
app.engine(".hbs", hbs.engine);
app.set("view engine", ".hbs");
app.set("views", "./views");
app.use((req, _res, next) => {
const date = dayjs().utcOffset(0, false);
const dateFormated = date.format("MM/DD/YYYY @ HH:mm");
const logLine = `[${dateFormated} UTC] ${req.method}: ${req.path}`
Deno.writeTextFileSync("logs/" + Deno.env.get("LOG_FILE"), logLine + "\n", { append: true })
console.log(logLine);
next();
});
app.use(bodyParser.json());
app.use(express.static(import.meta.dirname + "/static"));
app.get("/", (_req, res) => {
res.render("home", {
pageName: "Home",
pageId: "home",
});
});
app.get("/setup", (_req, res) => {
res.render("setup", {
pageName: "Setup",
pageId: "setup",
});
});
app.get("/blogs", (_req, res) => {
res.render("blogs", {
pageName: "Blogs",
pageId: "blogs",
});
});
app.get("/blogs/:blogId", (req, res) => {
try {
Deno.statSync(import.meta.dirname + "/views/blogs");
const options = {
blogId: req.params.blogId,
layout: "blog-page",
};
res.render("blogs/" + req.params.blogId, options);
} catch {
res.redirect("/blogs");
}
});
app.get("/projects", (_req, res) => {
res.render("projects", {
pageName: "Projects",
pageId: "projects",
});
});
app.use((_req, res) => {
res.redirect("/");
});
app.listen(1100, (err) => {
if (err) {
console.error(err);
} else {
console.log(
"Server up! Visit https://monicode.dev/ | http://localhost:1100",
);
}
});