Files
Mastering-Node.js-Web-Devel…/Chapter 10/End of Chapter/part2app/src/server/server.ts
T
2024-05-29 18:54:49 +01:00

45 lines
1.3 KiB
TypeScript

import { createServer } from "http";
import express, {Express } from "express";
import { testHandler } from "./testHandler";
import httpProxy from "http-proxy";
import helmet from "helmet";
//import { registerCustomTemplateEngine } from "./custom_engine";
import { engine } from "express-handlebars";
import * as helpers from "./template_helpers";
const port = 5000;
const expressApp: Express = express();
const proxy = httpProxy.createProxyServer({
target: "http://localhost:5100", ws: true
});
//registerCustomTemplateEngine(expressApp);
expressApp.set("views", "templates/server");
expressApp.engine("handlebars", engine());
expressApp.set("view engine", "handlebars");
expressApp.use(helmet());
expressApp.use(express.json());
expressApp.get("/dynamic/:file", (req, resp) => {
resp.render(`${req.params.file}.handlebars`,
{ message: "Hello template", req,
helpers: { ...helpers }
});
});
expressApp.post("/test", testHandler);
expressApp.use(express.static("static"));
expressApp.use(express.static("node_modules/bootstrap/dist"));
expressApp.use((req, resp) => proxy.web(req, resp));
const server = createServer(expressApp);
server.on('upgrade', (req, socket, head) => proxy.ws(req, socket, head));
server.listen(port,
() => console.log(`HTTP Server listening on port ${port}`));