typing-test-nodeJS/server.js
2025-02-23 23:20:37 -05:00

77 lines
1.8 KiB
JavaScript

const express= require("express");
const path = require("path");
const app = express();
const fs = require(`fs`);
const readline = require('readline');
require("dotenv").config({ path: path.resolve(__dirname, '.env') })
const bodyParser = require("body-parser");
port = -1;
function main() {
if (process.argv.length == 3) {
port = process.argv[2];
} else {
console.log("Usage summerCampSerever.js port");
process.exit(0);
}
expressSetup();
let rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
prompt: 'Type itemsList or stop to shutdown the server: ' // Set a custom prompt
});
rl.prompt();
rl.on('line', (line) => {
// Process the entered command
processCommand(line.trim());
// Display the prompt again
rl.prompt();
});
}
function expressSetup() {
app.set("views", path.resolve(__dirname, "templates"));
app.use(bodyParser.urlencoded({extended:false}));
app.use(express.static('assets'));
/* view/templating engine */
app.set("view engine", "ejs");
/* Root */
app.get("/", (request, response) => {
response.render("index");
});
app.get("/stats", (request, response) => {
response.render("myStats");
});
app.get("/leaderboard", (request, response) => {
response.render("leaderboard");
});
app.get("/about", (request, response) => {
response.render("about");
});
app.listen(port);
}
function processCommand(command) {
if (command == "stop") {
console.log("Shutting down the server");
process.exit(0);
} else if (command == "itemsList") {
console.log(itemsList.itemList);
} else {
console.log(`Invalid command: ${command}`);
}
}
main();