A collection of games I worked on in high school.
1"use strict";
2
3const path = require("path");
4const cluster = require("cluster");
5const bodyParser = require("body-parser");
6const cors = require("cors");
7const compression = require("compression");
8const express = require("express");
9const morgan = require("morgan");
10
11const app = express();
12const port = 3030;
13
14// Serve static files
15app.use(express.static(path.join(__dirname, "public")));
16
17// Enable middleware
18app.use(bodyParser.json());
19app.use(bodyParser.urlencoded({extended: true}));
20app.use(cors());
21app.use(morgan("dev"));
22app.use(compression());
23
24// Configure routes
25
26if (cluster.isMaster) {
27 // Fork processes
28 const cpuNum = require("os").cpus().length;
29 for (let i = 0; i < cpuNum; i++) cluster.fork();
30} else {
31 // Launch the server on a worker instance
32 app.listen(port, () => {
33 console.log(`Cluster worker ${cluster.worker.id} listening on port ${port}`);
34 });
35}
36
37cluster.on("exit", worker => {
38 console.log(`Game over, ${worker.id}. Continue?`);
39 cluster.fork();
40});