Bruk av node og express

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;
}

Bruk port 8082

Siden er tilgjengelig på http://it2810-19.idi.ntnu.no:8082
portnummeret bestemmes på linje 4 i server.js

Bruk CCS Flexible Box Layout

Brukes blant annet i navbar, men også mye på innholdet. Se linje 166 i /css/style.css

Navigasjonsbaren skal implementeres fra bunnen av

Navigasjonsbaren er på linje 32 til linje 39 i index.html, samt 30 til 66 i style.css

Ajax funksjonalitet

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

Bruke jQuery

Mye av jQuery bruken kan en f.eks se i buttons.js

jQuery selector

Se linje 10 i buttons.js der vi bruker en klasse selector

Funksjon som parameter

Se linje 10 til 12 i buttons.js

Form for eventhåndtering

Linje 10 i buttons.js brukes .on("click", ..) for å koble opp eventhåndtering ved klikk.

Responsiv design

Se media-queries fra og med linje 215 i style.css

Bidrag skal være dokumentert

Filen er levert på Blackboard.