From c3d50d2ac1a4e973c9cc6deb8d915d779b53898d Mon Sep 17 00:00:00 2001 From: Dieter Blocher Date: Wed, 29 Jan 2025 19:10:24 +0000 Subject: [PATCH] Add logging --- package-lock.json | 58 +++++++++++++++++++++++++++++++++++++- package.json | 3 +- src/middleware/database.js | 2 ++ src/server.js | 3 ++ 4 files changed, 64 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 605910c..38ee873 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,8 @@ "dotenv": "^16.4.7", "ejs": "^3.1.10", "express": "^4.21.2", - "mongoose": "^8.9.5" + "mongoose": "^8.9.5", + "morgan": "^1.10.0" }, "devDependencies": { "connect-livereload": "^0.6.1", @@ -104,6 +105,24 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "license": "MIT" }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -1015,6 +1034,34 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, + "node_modules/morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "license": "MIT", + "dependencies": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/morgan/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/mpath": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", @@ -1185,6 +1232,15 @@ "node": ">= 0.8" } }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/opts": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", diff --git a/package.json b/package.json index 1a11f8f..802843d 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ "dotenv": "^16.4.7", "ejs": "^3.1.10", "express": "^4.21.2", - "mongoose": "^8.9.5" + "mongoose": "^8.9.5", + "morgan": "^1.10.0" }, "devDependencies": { "connect-livereload": "^0.6.1", diff --git a/src/middleware/database.js b/src/middleware/database.js index 971aafc..bdd1ecc 100644 --- a/src/middleware/database.js +++ b/src/middleware/database.js @@ -21,6 +21,8 @@ const connectDB = async () => { //console.log(`Indexes in ${collectionName}:`); //console.log(indexes); + console.log("Finish Database Stats."); + } catch (error) { console.error(error.message); process.exit(1); diff --git a/src/server.js b/src/server.js index 80e2773..0e9c2ca 100644 --- a/src/server.js +++ b/src/server.js @@ -1,6 +1,7 @@ const express = require('express') require('dotenv').config(); const path = require('path'); +const morgan = require('morgan'); const livereload = require('livereload'); const connectLivereload = require('connect-livereload'); const connectDB = require('./middleware/database'); @@ -13,6 +14,8 @@ liveReloadServer.watch(__dirname + "public"); // Watch public directory const app = express() connectDB(); +// Use morgan to log requests in 'combined' format (includes status code, method, URL, etc.) +app.use(morgan('combined')); // Middleware to inject livereload script app.use(connectLivereload());