77 lines
1.8 KiB
JavaScript
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(); |