Repository navigation
Expand file tree
/
Copy pathapp.js
More file actions
60 lines (48 loc) · 1.81 KB
/
Copy pathapp.js
File metadata and controls
60 lines (48 loc) · 1.81 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
const express = require("express");
const path = require("node:path");
require("dotenv").config();
const indexRouter = require("./routes/indexRouter.js");
const pizzasRouter = require("./routes/pizzasRouter.js");
const ingredientsRouter = require("./routes/ingredientsRouter.js");
const categoriesRouter = require("./routes/categoriesRouter.js");
const doughsRouter = require("./routes/doughsRouter.js");
const searchRouter = require("./routes/searchRouter.js");
const CustomNotFoundError = require("./errors/CustomNotFoundError");
const app = express();
// Init view Engine
app.set("views", path.join(__dirname, "views"));
app.set("view engine", "ejs");
// Serve static files
app.use(express.static("public", { extensions: ["html"] }));
// Parse data for req.body
app.use(express.urlencoded({ extended: true })); // to parse form data into req.body
// Routes
app.use("/pizzas", pizzasRouter);
app.use("/ingredients", ingredientsRouter);
app.use("/categories", categoriesRouter);
app.use("/doughs", doughsRouter);
app.use("/search", searchRouter);
app.use("/", indexRouter);
// Ignore favicon icon / ... request
app.get(
["/favicon.ico", "/.well-known/appspecific/com.chrome.devtools.json"],
(req, res) => {
// console.log(`Ignoring request of ${req.path}`);
res.sendStatus(204); // No Content
}
);
// catch-all route throwing a 404 error
app.use((req, res, next) => {
throw new CustomNotFoundError("Page not found");
});
// Error handling
app.use((error, req, res, next) => {
console.log(error);
const code = error.statusCode || 500;
const message = code !== 500 ? error.message : "Internal server error";
res
.status(code)
.render("error", { pageTitle: process.env.TITLE, code, message });
});
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => console.log(`Server listening on port ${PORT}`));