For Episode 14:
const express = require("express");
const app = express();
const request = require("request");
var bodyParser = require('body-parser');
//Our ghetto database
const gamesData = [
{
title: "American Racing",
creator: "turboNuke",
width: 640,
height: 480,
fileName: "americanracing.swf",
thumbnailFile: "americanracingpicture.jpg"
},
{
title: "Generic Defense Game",
creator: "PyschoGoldfish",
width: 640,
height: 480,
fileName: "genericdefense.swf",
thumbnailFile: "GenericDefenseGame.png"
},
{
title: "Learn to Fly 2",
creator: "light_bringer777",
width: 640,
height: 480,
fileName: "embeddable_115608.swf",
thumbnailFile: "ltf2.jpg"
},
{
title: "Wonderputt",
creator: "dampgnat",
width: 750,
height: 650,
fileName: "wonderputt.swf",
thumbnailFile: "pop-wonderputt.jpg"
}
]
app.use(bodyParser.urlencoded({ extended: true }));
//Sets the public folder as the external file folder
app.use(express.static("public"));
//Officially sets the view engine as ejs, therefore setting the default file type for readering to .ejs
app.set("view engine", "ejs");
app.get("/", function(req, res){
res.render("homepage");
});
app.get("/game/:title/:creator/:width/:height/:fileName", function(req, res){
res.render("game", {
title: req.params.title,
creator: req.params.creator,
width: req.params.width,
height: req.params.height,
fileName: req.params.fileName
});
});
app.get("/list", function(req, res){
res.render("list", {
gamesData: gamesData
});
});
//GET Method for /addgame route
app.get("/addgame", function(req, res){
res.render("addgame");
});
//POST Method for /addgame route
app.post("/addgame", function(req, res){
var data = req.body;
gamesData.push(data);
res.redirect("/list");
});
app.listen("3000", function(){
console.log("Gaming Website has started up! Made by Illuminati Productions.");
});
<% include partials/header %>
<h1>Add a game here!</h1>
<form action="/addgame" method="POST">
<div class="form-group">
<label>Name</label>
<input type="text" class="form-control" placeholder="Run 3" name="title">
</div>
<div class="form-group">
<label>Creator</label>
<input type="text" class="form-control" placeholder="light_bringer777" name="creator">
</div>
<div class="form-group">
<label>Size</label>
<input type="text" class="form-control" placeholder="width" name="width">
<input type="text" class="form-control" placeholder="height" name="height">
</div>
<div class="form-group">
<label>File Name</label>
<input type="text" class="form-control" placeholder="bigbooty.swf" name="fileName">
</div>
<div class="form-group">
<label>Thumbnail File Name</label>
<input type="text" class="form-control" placeholder="thumbnail.jpg" name="thumbnailFile">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
<% include partials/footer %>