From 96fcfceb88e563aafe15eb46e0ab8196c308874f Mon Sep 17 00:00:00 2001 From: Ben Elferink Date: Sun, 27 Dec 2020 01:21:05 +0200 Subject: [PATCH] expanded default layout for better dev experience --- server/controllers/controller.js | 2 +- server/models/model.js | 4 ++-- server/routes/route.js | 13 ++++++++----- server/server.js | 17 +++++++++-------- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/server/controllers/controller.js b/server/controllers/controller.js index 785162c..05172f2 100644 --- a/server/controllers/controller.js +++ b/server/controllers/controller.js @@ -8,7 +8,7 @@ export const getExamples = (request, response, next) => export const uploadExample = (request, response, next) => new Example({ - _id: mongoose.Types.ObjectId(), // _id is set by default, you can remove this line + _id: mongoose.Types.ObjectId(), // _id is set by default, (you can remove this line) name: request.body.fieldName, // fieldName === name used on client side }) .save() // what is .save() ??? ---> https://mongoosejs.com/docs/api.html#document_Document-save diff --git a/server/models/model.js b/server/models/model.js index 87fba4b..18a746e 100644 --- a/server/models/model.js +++ b/server/models/model.js @@ -1,7 +1,7 @@ import mongoose from 'mongoose'; const instance = new mongoose.Schema({ - _id: mongoose.Schema.Types.ObjectId, // _id is set by default, you can remove this line + _id: mongoose.Schema.Types.ObjectId, // _id is set by default, (you can remove this line) /* name = property of document object String = type of value ---> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures @@ -10,7 +10,7 @@ const instance = new mongoose.Schema({ }); // document = model name ---> https://mongoosejs.com/docs/guide.html -// note: use a singular name, mongoose automatically creates a collections like so -> model: 'Person' === collection: 'people' +// note: use a singular name, mongoose automatically creates a collection like so -> model: 'Person' === collection: 'people' const document = 'Example'; export default mongoose.model(document, instance); diff --git a/server/routes/route.js b/server/routes/route.js index 4068436..0d61dab 100644 --- a/server/routes/route.js +++ b/server/routes/route.js @@ -1,13 +1,16 @@ import express from 'express'; import { getExamples, uploadExample } from './../controllers/controller.js'; // import request & response function -const router = express.Router(); // initialize router +// initialize router +const router = express.Router(); /* - 1st param = extended path location - 2nd param = request & response function + request methods ---> https://www.tutorialspoint.com/http/http_methods.htm + 1st param = extended url path + 2nd param = middlewares (optional) + 3rd param = request & response function (controller) */ -router.get('/', getExamples); // current path: http://localhost:8080/example -router.post('/upload', uploadExample); // current path: http://localhost:8080/example/upload +router.get('/', (request, response, next) => next(), getExamples); // current path: http://localhost:8080/example +router.post('/upload', (request, response, next) => next(), uploadExample); // current path: http://localhost:8080/example/upload export default router; diff --git a/server/server.js b/server/server.js index e1c28b6..2412930 100644 --- a/server/server.js +++ b/server/server.js @@ -8,7 +8,7 @@ import cors from 'cors'; // HTTP headers // initialize app const app = express(); -dotenv.config(); // ??? ---> https://github.com/motdotla/dotenv#readme +dotenv.config(); // what is dotenv ---> https://github.com/motdotla/dotenv#readme // middlewares app.use(express.json()); // body parser @@ -21,14 +21,12 @@ const CONNECTION_URL = process.env.CONNECTION_URL || `mongodb://localhost:27017/ const PORT = process.env.PORT || 8080; // 8080 === development port const DEPRECATED_FIX = { useNewUrlParser: true, useUnifiedTopology: true }; // change this with (possible) warnings on first connection -// connect to db // mongoose connections ---> https://mongoosejs.com/docs/connections.html -mongoose - .connect(CONNECTION_URL, DEPRECATED_FIX) // just connect to db - .then(() => console.log('✅ MongoDB connected')) // similiar to - mongoose.connection.on('open') - .then(() => app.listen(PORT, () => console.log(`✅ Server listening on port: ${PORT}`))) // server is listening for requests - .catch((error) => console.log(`❌ MongoDB: ${error}`)); // similiar to - mongoose.connection.on('error') - +// connect to db +mongoose.connect(CONNECTION_URL, DEPRECATED_FIX).catch((error) => console.log('❌ MongoDB:', error)); // listen for errors on initial connection +mongoose.connection.on('connected', () => console.log('✅ MongoDB connected')); +mongoose.connection.on('error', (error) => console.log('❌ MongoDB:', error)); // listen for errors after the connection is established (errors during the session) +mongoose.connection.on('disconnected', () => console.log('❌ MongoDB disconnected')); // mongoose.set('useCreateIndex', true); // ^ ^ ^ uncomment this if you use the "unique: true" property in a Schema @@ -36,3 +34,6 @@ mongoose app.get('/example', (req, res) => res.send('Hello World - Express.js')); // app.use('/', IMPORTED_ROUTES); // ^ ^ ^ un-comment this to use imported route(s) + +// server is listening for requests +app.listen(PORT, () => console.log(`✅ Server is listening on port: ${PORT}`));