Vi bruker et express script som kjører i node til å levere nettsiden, samt svare på ajax kall. Scriptet heter server.js , og er gjengitt her:
const express = require('express')
const app = express()
const port = 8082;
// Uses the function redirect to current season() for all request to /
app.get("/", redirectToCurrentSeason);
// Exposes all static content in the folder public_html
app.use(express.static('public_html'))
app.listen(port, function () {
console.log('Listening on ' + port + '!')
})
/**
* Redirects the request based on the current(system date) season.
* @param {*} req A request object
* @param {*} res The response object
*/
function redirectToCurrentSeason(req, res) {
// The seasonal pages, winter, spring, summer, fall
let seasonPages = ["index.html", "index.html", "index.html", "index.html"];
let currentSeason = getSeasonForCurrentDate();
let seasonPageUrl = "/" + seasonPages[currentSeason];
res.redirect(seasonPageUrl)
}
/**
* Return the season for todays date
* @return {number} The season for todays date
*/
function getSeasonForCurrentDate() {
let todaysDate = new Date();
let currentSeason = getSeasonFromDate(todaysDate);
return currentSeason;
}
/**
* Takes a date and returns the season of that date
* @param {Date} date
* @return {Number} season
*/
function getSeasonFromDate(date){
let month = date.getMonth();
if (month <= 1 || month == 11) return 0;
if (month >= 2 && month <= 4) return 1;
if (month >= 5 && month <= 7) return 2;
if (month >= 8 && month <= 10) return 3;
}
Siden er tilgjengelig på http://it2810-19.idi.ntnu.no:8082
portnummeret bestemmes på linje 4 i server.js
Brukes blant annet i navbar, men også mye på innholdet. Se linje 166 i /css/style.css
Navigasjonsbaren er på linje 32 til linje 39 i index.html, samt 30 til 66 i style.css
I navbaren brukes det i stedet for lenker en funksjon som laster inn en helt ny html side og erstatter det som er i browseren med den nye siden.
Ajax kallet gjøres ved $.get(.., .., ..) i destination.js
Mye av jQuery bruken kan en f.eks se i buttons.js
Se linje 10 i buttons.js der vi bruker en klasse selector
Se linje 10 til 12 i buttons.js
Linje 10 i buttons.js brukes .on("click", ..) for å koble opp eventhåndtering ved klikk.
Se media-queries fra og med linje 215 i style.css
Filen er levert på Blackboard.