diff --git a/app.js b/app.js index 6fb4eb3..145a338 100644 --- a/app.js +++ b/app.js @@ -1,8 +1,12 @@ 'use strict'; // Import required modules +const bodyParser = require('body-parser'); const express = require('express'); +const path = require('path'); const session = require('express-session'); +const serveFavicon = require('serve-favicon'); +const serveStatic = require('serve-static'); // Import user defined modules const DatabaseConnectionPool = require('./lib/DatabaseConnectionPool'); @@ -21,6 +25,15 @@ async function main() { // Initialise express app const app = express(); + // Set up parsers to allow reading of POST form data + app.use(bodyParser.json()); + app.use(bodyParser.urlencoded({ extended: true })); + + // Set up routes for static files + app.use(serveFavicon(path.join(__dirname, + 'public/assets/favicon.ico'))); + app.use('/', serveStatic(path.join(__dirname, 'public'))); + // Set up session middleware app.use(session({ secret: sessionOptions.sessionSecret, diff --git a/package-lock.json b/package-lock.json index c3bb913..c87e80d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,10 +10,13 @@ "license": "MIT", "dependencies": { "bcrypt": "^5.0.1", + "body-parser": "^1.19.1", "express": "^4.17.2", "express-mysql-session": "^2.1.7", "express-session": "^1.17.2", - "mysql2": "^2.3.3" + "mysql2": "^2.3.3", + "serve-favicon": "^2.5.0", + "serve-static": "^1.14.2" }, "devDependencies": { "eslint": "^8.6.0", @@ -5339,6 +5342,31 @@ "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", "integrity": "sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4=" }, + "node_modules/serve-favicon": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", + "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", + "dependencies": { + "etag": "~1.8.1", + "fresh": "0.5.2", + "ms": "2.1.1", + "parseurl": "~1.3.2", + "safe-buffer": "5.1.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-favicon/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "node_modules/serve-favicon/node_modules/safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, "node_modules/serve-static": { "version": "1.14.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", @@ -10163,6 +10191,30 @@ "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", "integrity": "sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4=" }, + "serve-favicon": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", + "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", + "requires": { + "etag": "~1.8.1", + "fresh": "0.5.2", + "ms": "2.1.1", + "parseurl": "~1.3.2", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + } + } + }, "serve-static": { "version": "1.14.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", diff --git a/package.json b/package.json index cb21445..1e46a60 100644 --- a/package.json +++ b/package.json @@ -20,10 +20,13 @@ "homepage": "https://github.com/matt-fidd/stratos#readme", "dependencies": { "bcrypt": "^5.0.1", + "body-parser": "^1.19.1", "express": "^4.17.2", "express-mysql-session": "^2.1.7", "express-session": "^1.17.2", - "mysql2": "^2.3.3" + "mysql2": "^2.3.3", + "serve-favicon": "^2.5.0", + "serve-static": "^1.14.2" }, "devDependencies": { "eslint": "^8.6.0",