From c7c2510cc7485dcba0b0f9739d269c33a7116fdd Mon Sep 17 00:00:00 2001 From: dbobb220 Date: Mon, 22 Jul 2019 11:14:42 -0500 Subject: [PATCH 1/8] create routes --- index.js | 56 ++++++++++++++++++++++++++++++++++++++++++++++ routes/comments.js | 14 ++++++++++++ routes/contacts.js | 0 routes/products.js | 0 routes/vehicles.js | 0 5 files changed, 70 insertions(+) create mode 100644 routes/comments.js create mode 100644 routes/contacts.js create mode 100644 routes/products.js create mode 100644 routes/vehicles.js diff --git a/index.js b/index.js index 3d47752..8861de8 100644 --- a/index.js +++ b/index.js @@ -11,6 +11,62 @@ app.use(express.static("public")); const thePort = 3001; +// COMMENTS +// GET +app.get('/comments', (req, res) => { + res.json(comments); +}); +app.get('/comments/:commentId', (req, res) => { + let comment = comments.find(x => x._id == req.params.commentId); + res.json(comment); +}); +app.post('/contacts', (req, res) => { + let newComment = req.body; + comments.push(newComment); + res.json(newComment); +}); + +// VEHICLES +app.get('/vehicles', (req, res) => { + res.json(vehicles) +}); +app.get('/vehicles/:vehicleId', (req, res) => { + let vehicle = vehicles.find(x => x._id == req.params.vehicleId); + res.json(vehicle); +}); +app.post('/vehicles', (req, res) => { + let newVehicle = req.body; + vehicles.push(newVehicle); + res.json(newVehicle); +}); + +// CONTACTS +app.get('/contacts', (req, res) => { + res.json(contacts) +}); +app.get('/contacts/:contactId', (req, res) => { + let contact = contacts.find(x => x._id == req.params.contactId); + res.json(contact); +}); +app.post('/contacts', (req, res) => { + let newContact = req.body; + contacts.push(newContact); + res.json(newContact); +}); + +// PRODUCTS +app.get('/products', (req, res) => { + res.json(products); +}); +app.get('/products/:productsId', (req, res) => { + let product = products.find(x => x._id == req.params.productsId); + res.json(product); +}); +app.post('/products', (req, res) => { + let newProduct = req.body; + products.push(newProduct); + res.json(newProduct); +}); app.listen(thePort, (err) => { if (err) { diff --git a/routes/comments.js b/routes/comments.js new file mode 100644 index 0000000..99b54ee --- /dev/null +++ b/routes/comments.js @@ -0,0 +1,14 @@ +// COMMENTS +// GET +app.get('/comments', (req, res) => { + res.json(comments); + }); + app.get('/comments/:commentId', (req, res) => { + let comment = comments.find(x => x._id == req.params.commentId); + res.json(comment); + }); + app.post('/contacts', (req, res) => { + let newComment = req.body; + comments.push(newComment); + res.json(newComment); + }); \ No newline at end of file diff --git a/routes/contacts.js b/routes/contacts.js new file mode 100644 index 0000000..e69de29 diff --git a/routes/products.js b/routes/products.js new file mode 100644 index 0000000..e69de29 diff --git a/routes/vehicles.js b/routes/vehicles.js new file mode 100644 index 0000000..e69de29 From 5c6c5c1c1ec2d3b023940827bf20ce0cbafc0f9f Mon Sep 17 00:00:00 2001 From: dbobb220 Date: Mon, 22 Jul 2019 11:33:48 -0500 Subject: [PATCH 2/8] routes complete --- index.js | 68 ++++++---------------------------------------- routes/comment.js | 21 ++++++++++++++ routes/comments.js | 14 ---------- routes/contact.js | 21 ++++++++++++++ routes/contacts.js | 0 routes/product.js | 21 ++++++++++++++ routes/products.js | 0 routes/vehicle.js | 21 ++++++++++++++ routes/vehicles.js | 0 9 files changed, 92 insertions(+), 74 deletions(-) create mode 100644 routes/comment.js delete mode 100644 routes/comments.js create mode 100644 routes/contact.js delete mode 100644 routes/contacts.js create mode 100644 routes/product.js delete mode 100644 routes/products.js create mode 100644 routes/vehicle.js delete mode 100644 routes/vehicles.js diff --git a/index.js b/index.js index 8861de8..b9fda7b 100644 --- a/index.js +++ b/index.js @@ -1,8 +1,8 @@ let express = require("express"); -let comments = require("./comments"); -let products = require("./products"); -let vehicles = require("./vehicles"); -let contacts = require("./contacts"); +let commentRoutes = require("./routes/comment"); +let productRoutes = require("./routes/product"); +let contactRoutes = require("./routes/contact"); +let vehicleRoutes = require('./routes/vehicle'); const bodyParser = require("body-parser"); const app = express(); @@ -11,62 +11,10 @@ app.use(express.static("public")); const thePort = 3001; -// COMMENTS -// GET -app.get('/comments', (req, res) => { - res.json(comments); -}); -app.get('/comments/:commentId', (req, res) => { - let comment = comments.find(x => x._id == req.params.commentId); - res.json(comment); -}); -app.post('/contacts', (req, res) => { - let newComment = req.body; - comments.push(newComment); - res.json(newComment); -}); - -// VEHICLES -app.get('/vehicles', (req, res) => { - res.json(vehicles) -}); -app.get('/vehicles/:vehicleId', (req, res) => { - let vehicle = vehicles.find(x => x._id == req.params.vehicleId); - res.json(vehicle); -}); -app.post('/vehicles', (req, res) => { - let newVehicle = req.body; - vehicles.push(newVehicle); - res.json(newVehicle); -}); - -// CONTACTS -app.get('/contacts', (req, res) => { - res.json(contacts) -}); -app.get('/contacts/:contactId', (req, res) => { - let contact = contacts.find(x => x._id == req.params.contactId); - res.json(contact); -}); -app.post('/contacts', (req, res) => { - let newContact = req.body; - contacts.push(newContact); - res.json(newContact); -}); - -// PRODUCTS -app.get('/products', (req, res) => { - res.json(products); -}); -app.get('/products/:productsId', (req, res) => { - let product = products.find(x => x._id == req.params.productsId); - res.json(product); -}); -app.post('/products', (req, res) => { - let newProduct = req.body; - products.push(newProduct); - res.json(newProduct); -}); +app.use(vehicleRoutes); +app.use(productRoutes); +app.use(contactRoutes); +app.use(vehicleRoutes); app.listen(thePort, (err) => { if (err) { diff --git a/routes/comment.js b/routes/comment.js new file mode 100644 index 0000000..29536e9 --- /dev/null +++ b/routes/comment.js @@ -0,0 +1,21 @@ +const express = require('express'); +const router = express.Router(); +let comments = require('../comments'); + +// COMMENTS +router.get('/comments', (req, res) => { + res.json(comments); + }); + +router.get('/comments/:commentId', (req, res) => { + let comment = comments.find(x => x._id == req.params.commentId); + res.json(comment); +}); + +router.post('/contacts', (req, res) => { + let newComment = req.body; + comments.push(newComment); + res.json(newComment); +}); + +module.exports = router; \ No newline at end of file diff --git a/routes/comments.js b/routes/comments.js deleted file mode 100644 index 99b54ee..0000000 --- a/routes/comments.js +++ /dev/null @@ -1,14 +0,0 @@ -// COMMENTS -// GET -app.get('/comments', (req, res) => { - res.json(comments); - }); - app.get('/comments/:commentId', (req, res) => { - let comment = comments.find(x => x._id == req.params.commentId); - res.json(comment); - }); - app.post('/contacts', (req, res) => { - let newComment = req.body; - comments.push(newComment); - res.json(newComment); - }); \ No newline at end of file diff --git a/routes/contact.js b/routes/contact.js new file mode 100644 index 0000000..9822ad1 --- /dev/null +++ b/routes/contact.js @@ -0,0 +1,21 @@ +const express = require('express'); +const router = express.Router(); +let contacts = require('../contacts'); + +// CONTACTS +router.get('/contacts', (req, res) => { + res.json(contacts) +}); + +router.get('/contacts/:contactId', (req, res) => { + let contact = contacts.find(x => x._id == req.params.contactId); + res.json(contact); +}); + +router.post('/contacts', (req, res) => { + let newContact = req.body; + contacts.push(newContact); + res.json(newContact); +}); + +module.exports = router; diff --git a/routes/contacts.js b/routes/contacts.js deleted file mode 100644 index e69de29..0000000 diff --git a/routes/product.js b/routes/product.js new file mode 100644 index 0000000..114a15c --- /dev/null +++ b/routes/product.js @@ -0,0 +1,21 @@ +const express = require('express'); +const router = express.Router(); +let products = require('../products'); + +// PRODUCTS +router.get('/products', (req, res) => { + res.json(products); +}); + +router.get('/products/:productsId', (req, res) => { + let product = products.find(x => x._id == req.params.productsId); + res.json(product); +}); + +router.post('/products', (req, res) => { + let newProduct = req.body; + products.push(newProduct); + res.json(newProduct); +}); + +module.exports = router; \ No newline at end of file diff --git a/routes/products.js b/routes/products.js deleted file mode 100644 index e69de29..0000000 diff --git a/routes/vehicle.js b/routes/vehicle.js new file mode 100644 index 0000000..25672b1 --- /dev/null +++ b/routes/vehicle.js @@ -0,0 +1,21 @@ +const express = require('express'); +const router = express.Router() +let vehicles = require("../vehicles"); + +// VEHICLES +router.get('/vehicles', (req, res) => { + res.json(vehicles) + }); + +router.get('/vehicles/:vehicleId', (req, res) => { + let vehicle = vehicles.find(x => x._id == req.params.vehicleId); + res.json(vehicle); +}); + +router.post('/vehicles', (req, res) => { + let newVehicle = req.body; + vehicles.push(newVehicle); + res.json(newVehicle); +}); + +module.exports = router; \ No newline at end of file diff --git a/routes/vehicles.js b/routes/vehicles.js deleted file mode 100644 index e69de29..0000000 From fcdcb16c2a82d7f75c6ca1aa1fba040766883f35 Mon Sep 17 00:00:00 2001 From: dbobb220 Date: Mon, 22 Jul 2019 12:30:14 -0500 Subject: [PATCH 3/8] controllers complete --- controllers/comment.js | 28 ++++++++++++++++++++++++++++ controllers/contact.js | 30 ++++++++++++++++++++++++++++++ controllers/product.js | 29 +++++++++++++++++++++++++++++ controllers/vehicle.js | 30 ++++++++++++++++++++++++++++++ index.js | 8 ++++---- routes/comment.js | 19 ++++--------------- routes/contact.js | 19 ++++--------------- routes/product.js | 19 ++++--------------- routes/vehicle.js | 21 +++++---------------- 9 files changed, 138 insertions(+), 65 deletions(-) create mode 100644 controllers/comment.js create mode 100644 controllers/contact.js create mode 100644 controllers/product.js create mode 100644 controllers/vehicle.js diff --git a/controllers/comment.js b/controllers/comment.js new file mode 100644 index 0000000..f427b54 --- /dev/null +++ b/controllers/comment.js @@ -0,0 +1,28 @@ +let comments = require('../comments'); + +exports.list = function list(request, response) { + return response.json(comments); +} + +exports.show = function show(request, response) { + let comment = comments.find(x => x._id == request.params.commentId); + response.json(comment); +} + +exports.create = function create(request, response) { + let newComment = request.body; + comments.push(newComment); + response.json(newComment); +} + +exports.update = function update(request, response) { + let comment = comments.find(x => x._id == request.params.commentId); + comment.body = body.body; + response.json(comment); +} + +exports.remove = function remove(reqeust, response) { + let comment = comments.find(x => x._id == request.params.commentId); + comment.isActive = false; + response.send('deleted'); +} \ No newline at end of file diff --git a/controllers/contact.js b/controllers/contact.js new file mode 100644 index 0000000..65614ca --- /dev/null +++ b/controllers/contact.js @@ -0,0 +1,30 @@ +let contacts = require('../contacts'); + +exports.list = function list(request, response) { + return response.json(contacts); +} + +exports.show = function show(request, response) { + let contact = contacts.find(x => x._id == request.params.contactId); + response.json(contact); +} + +exports.create = function create(request, response) { + let newContact = request.body; + contacts.push(newContact); + response.json(newContact); +} + +exports.update = function update(request, response) { + let contact = contacts.find(x => x._id == request.params.contactId); + contact.name = body.name; + contact.occupation = body.occupation; + contact.avatar = body.avatar; + response.json(contact); +} + +exports.remove = function remove(reqeust, response) { + let contact = contacts.find(x=> x._id == request.params.contactId); + contact.isActive = false; + response.send('deleted'); +} \ No newline at end of file diff --git a/controllers/product.js b/controllers/product.js new file mode 100644 index 0000000..b37a3ef --- /dev/null +++ b/controllers/product.js @@ -0,0 +1,29 @@ +let products = require('../products'); + +exports.list = function list(request, response) { + return response.json(products); +} + +exports.show = function show(request, response) { + let product = products.find(x => x._id == request.params.productId); + response.json(product); +} + +exports.create = function create(request, response) { + let newProduct = request.body; + products.push(newProduct); + response.json(newProduct); +} + +exports.update = function update(request, response) { + let product = products.find(x => x._id == request.parameters.productId); + product.name = body.name; + product.description = body.description; + response.json(product); +} + +exports.remove = function remove(reqeust, response) { + let product = product.find(x => x._id == request.params.productId); + product.isActive = false; + response.send('deleted'); +} \ No newline at end of file diff --git a/controllers/vehicle.js b/controllers/vehicle.js new file mode 100644 index 0000000..ba91f09 --- /dev/null +++ b/controllers/vehicle.js @@ -0,0 +1,30 @@ +let vehicles = require('../vehicles'); + +exports.list = function list(request, response) { + return response.json(vehicles); +} + +exports.show = function show(request, response) { + let vehicle = vehicles.find(x => x._id == request.params.vehicleId); + response.json(vehicle); +} + +exports.create = function create(request, response) { + let newVehicle = request.body; + vehicles.push(newVehicle); + response.json(newVehicle); +} + +exports.update = function update(request, response) { + let vehicle = vehicles.find(i => i._id == request.params.vehicleId); + vehicle.make = body.make; + vehicle.year = body.year; + vehicle.model = body.model; + response.json(vehicle); +} + +exports.remove = function remove(request, response) { + let vehicle = vehicle.find(i => i._id == request.params.vehicleId); + vehicle.isActive = false; + response.send('deleted'); +} \ No newline at end of file diff --git a/index.js b/index.js index b9fda7b..7fd83c5 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,7 @@ let express = require("express"); -let commentRoutes = require("./routes/comment"); -let productRoutes = require("./routes/product"); -let contactRoutes = require("./routes/contact"); +let commentRoutes = require('./routes/comment'); +let productRoutes = require('./routes/product'); +let contactRoutes = require('./routes/contact'); let vehicleRoutes = require('./routes/vehicle'); const bodyParser = require("body-parser"); @@ -12,9 +12,9 @@ app.use(express.static("public")); const thePort = 3001; app.use(vehicleRoutes); +app.use(commentRoutes); app.use(productRoutes); app.use(contactRoutes); -app.use(vehicleRoutes); app.listen(thePort, (err) => { if (err) { diff --git a/routes/comment.js b/routes/comment.js index 29536e9..42aa6e4 100644 --- a/routes/comment.js +++ b/routes/comment.js @@ -1,21 +1,10 @@ const express = require('express'); const router = express.Router(); -let comments = require('../comments'); +const {list, show, create} = require('../controllers/comment'); // COMMENTS -router.get('/comments', (req, res) => { - res.json(comments); - }); - -router.get('/comments/:commentId', (req, res) => { - let comment = comments.find(x => x._id == req.params.commentId); - res.json(comment); -}); - -router.post('/contacts', (req, res) => { - let newComment = req.body; - comments.push(newComment); - res.json(newComment); -}); +router.get('/comments', list); +router.get('/comments/:commentId', show); +router.post('/contacts', create); module.exports = router; \ No newline at end of file diff --git a/routes/contact.js b/routes/contact.js index 9822ad1..5aa20af 100644 --- a/routes/contact.js +++ b/routes/contact.js @@ -1,21 +1,10 @@ const express = require('express'); const router = express.Router(); -let contacts = require('../contacts'); +const {list, show, create} = require('../controllers/contact'); // CONTACTS -router.get('/contacts', (req, res) => { - res.json(contacts) -}); - -router.get('/contacts/:contactId', (req, res) => { - let contact = contacts.find(x => x._id == req.params.contactId); - res.json(contact); -}); - -router.post('/contacts', (req, res) => { - let newContact = req.body; - contacts.push(newContact); - res.json(newContact); -}); +router.get('/contacts', list); +router.get('/contacts/:contactId', show); +router.post('/contacts', create); module.exports = router; diff --git a/routes/product.js b/routes/product.js index 114a15c..1f7db77 100644 --- a/routes/product.js +++ b/routes/product.js @@ -1,21 +1,10 @@ const express = require('express'); const router = express.Router(); -let products = require('../products'); +const {list, show, create} = require('../controllers/product'); // PRODUCTS -router.get('/products', (req, res) => { - res.json(products); -}); - -router.get('/products/:productsId', (req, res) => { - let product = products.find(x => x._id == req.params.productsId); - res.json(product); -}); - -router.post('/products', (req, res) => { - let newProduct = req.body; - products.push(newProduct); - res.json(newProduct); -}); +router.get('/products', list); +router.get('/products/:productsId', show); +router.post('/products', create); module.exports = router; \ No newline at end of file diff --git a/routes/vehicle.js b/routes/vehicle.js index 25672b1..f3cbfbb 100644 --- a/routes/vehicle.js +++ b/routes/vehicle.js @@ -1,21 +1,10 @@ const express = require('express'); -const router = express.Router() -let vehicles = require("../vehicles"); +const router = express.Router(); +const {list, create, show} = require('../controllers/vehicle') // VEHICLES -router.get('/vehicles', (req, res) => { - res.json(vehicles) - }); - -router.get('/vehicles/:vehicleId', (req, res) => { - let vehicle = vehicles.find(x => x._id == req.params.vehicleId); - res.json(vehicle); -}); - -router.post('/vehicles', (req, res) => { - let newVehicle = req.body; - vehicles.push(newVehicle); - res.json(newVehicle); -}); +router.get('/vehicles', list); +router.get('/vehicles/:vehicleId', show); +router.post('/vehicles', create); module.exports = router; \ No newline at end of file From 5dde72b90f864d6900a7c35357838f5d6db1155a Mon Sep 17 00:00:00 2001 From: dbobb220 Date: Mon, 29 Jul 2019 19:36:09 -0500 Subject: [PATCH 4/8] adding database --- .gitignore | 3 +++ README.md | 14 ++++++++++++-- database.js | 19 +++++++++++++++++++ package-lock.json | 39 +++++++++++++++++++++++++++++++++++++++ package.json | 4 +++- 5 files changed, 76 insertions(+), 3 deletions(-) create mode 100644 database.js diff --git a/.gitignore b/.gitignore index 5148e52..c680556 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,6 @@ jspm_packages # Optional REPL history .node_repl_history + +# dot env +.env diff --git a/README.md b/README.md index b26b556..6d40f2c 100644 --- a/README.md +++ b/README.md @@ -46,14 +46,24 @@ We don't need to worry about update or delete. * Import and use the controller functions in the appropiate Router # Part 4 - Database -* In server/index.js, import and use mongoose. Connect to a database "advanced-express-practice" -* Create the mongoose models for Contact, Vehicle, Comment Product +* https://github.com/AustinCodingAcademy/express-mongodb +* Create a database somewhere for advanced-express-practice +* Create a new file database.js, implement the code for MongoClient and connect() +* Implement the mongodb client tool into your controllers for list, show, create +* Use insertMany() for create and find() for list and show +* How are your controllers going to get access to const db = client.db("advanced-express-practice"); + +# Part 5 - Mongoose + +* In server/index.js, import and use mongoose. Connect to a database "advanced-express-practice" +* Create the mongoose models for * * Contact, Vehicle, Comment Product * CommentModel - body * ContactModel - name, occupation, avatar * VehicleModel - year, make, model * ProductModel - name, description * Change the code in the controllers to use the Models instead of hard coded arrays + ### Points * Base - 10pts * Data shows in the page for the Lists - 5pts each (20pts) diff --git a/database.js b/database.js new file mode 100644 index 0000000..c7e1b81 --- /dev/null +++ b/database.js @@ -0,0 +1,19 @@ +const MongoClient = require('mongodb').MongoClient; +const assert = require('assert'); +const dotenv = require('dotenv').config(); + +// Connection URL +const url = `mongodb+srv://${process.env.DB_USER}:${process.env.DB_PASSWORD}@aca-practice-bx4sb.mongodb.net/test?retryWrites=true&w=majority`; + +// Database Name +const dbName = 'advanced-express-practice'; + +// Use connect method to connect to the server +MongoClient.connect(url, function(err, client) { + assert.equal(null, err); + console.log("Connected successfully to server"); + + const db = client.db(dbName); + + client.close(); +}); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index a533283..fe35fce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,6 +35,11 @@ "type-is": "~1.6.16" } }, + "bson": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.1.tgz", + "integrity": "sha512-jCGVYLoYMHDkOsbwJZBCqwMHyH4c+wzgI9hG7Z6SZJRXWr+x58pdIbm2i9a/jFGCkRJqRUr8eoI7lDWa0hTkxg==" + }, "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -78,6 +83,11 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "dotenv": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.0.0.tgz", + "integrity": "sha512-30xVGqjLjiUOArT4+M5q9sYdvuR4riM6yK9wMcas9Vbp6zZa+ocC9dp6QoftuhTPhFAiLK/0C5Ni2nou/Bk8lg==" + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -235,6 +245,16 @@ "mime-db": "~1.37.0" } }, + "mongodb": { + "version": "3.3.0-beta2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.3.0-beta2.tgz", + "integrity": "sha512-Z8L7VwLx4omRw4twLQ00tPxVrfDi6pELFR4oCDAu8rDUjhtmH7vsBtS9idqBTbvkcx7w9eaN+m2h4aPkXlnpDg==", + "requires": { + "bson": "^1.1.1", + "require_optional": "^1.0.1", + "safe-buffer": "^5.1.2" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -293,6 +313,20 @@ "unpipe": "1.0.0" } }, + "require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "requires": { + "resolve-from": "^2.0.0", + "semver": "^5.1.0" + } + }, + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -303,6 +337,11 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" + }, "send": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", diff --git a/package.json b/package.json index d82072f..0f220b4 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,8 @@ "devDependencies": {}, "dependencies": { "body-parser": "*", - "express": "*" + "dotenv": "^8.0.0", + "express": "*", + "mongodb": "^3.3.0-beta2" } } From a1c2e5c5cd11ed3125a42e8ee60453bc58b2295c Mon Sep 17 00:00:00 2001 From: dbobb220 Date: Tue, 30 Jul 2019 09:27:35 -0500 Subject: [PATCH 5/8] database working --- database.js | 26 ++++++++++++++------------ package-lock.json | 25 ++++++++++++++++--------- package.json | 2 +- 3 files changed, 31 insertions(+), 22 deletions(-) diff --git a/database.js b/database.js index c7e1b81..e3d186a 100644 --- a/database.js +++ b/database.js @@ -1,19 +1,21 @@ const MongoClient = require('mongodb').MongoClient; const assert = require('assert'); const dotenv = require('dotenv').config(); + + -// Connection URL +// change this to your mongodb atlas uri const url = `mongodb+srv://${process.env.DB_USER}:${process.env.DB_PASSWORD}@aca-practice-bx4sb.mongodb.net/test?retryWrites=true&w=majority`; - -// Database Name +const client = new MongoClient(url); const dbName = 'advanced-express-practice'; - + +let areYouConnected = (err) => { + if (err) { + console.log(err); + return + } + console.log('Connected successfully to server') +} + // Use connect method to connect to the server -MongoClient.connect(url, function(err, client) { - assert.equal(null, err); - console.log("Connected successfully to server"); - - const db = client.db(dbName); - - client.close(); -}); \ No newline at end of file +client.connect(areYouConnected, { useNewUrlParser: true }) diff --git a/package-lock.json b/package-lock.json index fe35fce..3c727d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,9 +36,9 @@ } }, "bson": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.1.tgz", - "integrity": "sha512-jCGVYLoYMHDkOsbwJZBCqwMHyH4c+wzgI9hG7Z6SZJRXWr+x58pdIbm2i9a/jFGCkRJqRUr8eoI7lDWa0hTkxg==" + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.9.tgz", + "integrity": "sha512-IQX9/h7WdMBIW/q/++tGd+emQr0XMdeZ6icnT/74Xk9fnabWn+gZgpE+9V+gujL3hhJOoNrnDVY7tWdzc7NUTg==" }, "bytes": { "version": "3.0.0", @@ -246,13 +246,20 @@ } }, "mongodb": { - "version": "3.3.0-beta2", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.3.0-beta2.tgz", - "integrity": "sha512-Z8L7VwLx4omRw4twLQ00tPxVrfDi6pELFR4oCDAu8rDUjhtmH7vsBtS9idqBTbvkcx7w9eaN+m2h4aPkXlnpDg==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.0.11.tgz", + "integrity": "sha512-60KV+DPW++fzaD5cYbieCRQcXiYWQdRLHBqQyuu3rJmrP8vYZgI4u5UwfsUX6nGLON69FUIu4d3tH+WL4jShuA==", + "requires": { + "mongodb-core": "3.0.11" + } + }, + "mongodb-core": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.0.11.tgz", + "integrity": "sha512-agzBbSP3ahEYJyBMQicj70B+n+NNYsKaroezu5ETcImXs9nqf89/QI6e8iipg2rY3a8OWZBHWvqYxnsWasrUQA==", "requires": { - "bson": "^1.1.1", - "require_optional": "^1.0.1", - "safe-buffer": "^5.1.2" + "bson": "~1.0.4", + "require_optional": "^1.0.1" } }, "ms": { diff --git a/package.json b/package.json index 0f220b4..6a20cb5 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,6 @@ "body-parser": "*", "dotenv": "^8.0.0", "express": "*", - "mongodb": "^3.3.0-beta2" + "mongodb": "~3.0.8" } } From e82d450d66cb3ae180ae236c430e6659d6a51f96 Mon Sep 17 00:00:00 2001 From: dbobb220 Date: Sat, 10 Aug 2019 20:10:31 -0500 Subject: [PATCH 6/8] commit before mongodb command change --- controllers/vehicle.js | 13 ++++++++----- database.js | 5 +++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/controllers/vehicle.js b/controllers/vehicle.js index ba91f09..5d8b7a5 100644 --- a/controllers/vehicle.js +++ b/controllers/vehicle.js @@ -1,3 +1,4 @@ +const {getDatabase} = require('../database'); let vehicles = require('../vehicles'); exports.list = function list(request, response) { @@ -9,11 +10,13 @@ exports.show = function show(request, response) { response.json(vehicle); } -exports.create = function create(request, response) { - let newVehicle = request.body; - vehicles.push(newVehicle); - response.json(newVehicle); -} +//* insert many + +// exports.create = function create(request, response) { +// let newVehicle = request.body; +// vehicles.push(newVehicle); +// response.json(newVehicle); +// } exports.update = function update(request, response) { let vehicle = vehicles.find(i => i._id == request.params.vehicleId); diff --git a/database.js b/database.js index e3d186a..a879c29 100644 --- a/database.js +++ b/database.js @@ -1,6 +1,7 @@ const MongoClient = require('mongodb').MongoClient; const assert = require('assert'); const dotenv = require('dotenv').config(); +let db = null; @@ -19,3 +20,7 @@ let areYouConnected = (err) => { // Use connect method to connect to the server client.connect(areYouConnected, { useNewUrlParser: true }) + +exports.getDatabase = function() { + return db; +} \ No newline at end of file From c06091b92d71d77ac3f90a8445ab93d9171b68b9 Mon Sep 17 00:00:00 2001 From: dbobb220 Date: Sun, 11 Aug 2019 12:13:34 -0500 Subject: [PATCH 7/8] part 4 complete --- controllers/comment.js | 30 +++++++++++++----------------- controllers/contact.js | 33 +++++++++++++-------------------- controllers/product.js | 30 ++++++++++++------------------ controllers/vehicle.js | 37 ++++++++++++++----------------------- 4 files changed, 52 insertions(+), 78 deletions(-) diff --git a/controllers/comment.js b/controllers/comment.js index f427b54..fff8acb 100644 --- a/controllers/comment.js +++ b/controllers/comment.js @@ -1,28 +1,24 @@ +const {getDatabase} = require('../database'); +let db = getDatabase; +const collection = db.collection('comments'); + let comments = require('../comments'); exports.list = function list(request, response) { - return response.json(comments); + let found = collection.find({}); + found.toArray(function(err, comments) { + response.json(comments) + }); } -exports.show = function show(request, response) { - let comment = comments.find(x => x._id == request.params.commentId); - response.json(comment); -} - -exports.create = function create(request, response) { +exports.create = function(request, response) { let newComment = request.body; - comments.push(newComment); + collection.insertMany(newComment); response.json(newComment); } -exports.update = function update(request, response) { - let comment = comments.find(x => x._id == request.params.commentId); - comment.body = body.body; +exports.show = function(request, response) { + let findComment = request.params.commentId; + let comment = collection.find({_id: findComment}); response.json(comment); } - -exports.remove = function remove(reqeust, response) { - let comment = comments.find(x => x._id == request.params.commentId); - comment.isActive = false; - response.send('deleted'); -} \ No newline at end of file diff --git a/controllers/contact.js b/controllers/contact.js index 65614ca..f7d3f54 100644 --- a/controllers/contact.js +++ b/controllers/contact.js @@ -1,30 +1,23 @@ -let contacts = require('../contacts'); +const {getDatabase} = require('../database'); +let db = getDatabase; +const collection = db.collection('contacts'); -exports.list = function list(request, response) { - return response.json(contacts); -} +let comments = require('../comments'); -exports.show = function show(request, response) { - let contact = contacts.find(x => x._id == request.params.contactId); - response.json(contact); +exports.list = function list(request, response) { + let found = collection.find({}); + found.toArray(function(err, contacts) { + response.json(contacts); } -exports.create = function create(request, response) { +exports.create = function(request, response) { let newContact = request.body; - contacts.push(newContact); + collection.insertMany(newContact); response.json(newContact); } -exports.update = function update(request, response) { - let contact = contacts.find(x => x._id == request.params.contactId); - contact.name = body.name; - contact.occupation = body.occupation; - contact.avatar = body.avatar; +exports.show = function(request, response) { + let findContact = request.params.contactId; + let contact = collection.find({_id: findContact}); response.json(contact); } - -exports.remove = function remove(reqeust, response) { - let contact = contacts.find(x=> x._id == request.params.contactId); - contact.isActive = false; - response.send('deleted'); -} \ No newline at end of file diff --git a/controllers/product.js b/controllers/product.js index b37a3ef..d757f1a 100644 --- a/controllers/product.js +++ b/controllers/product.js @@ -1,29 +1,23 @@ +const {getDatabase} = require('../database'); +let db = getDatabase; +const collection = db.collection('products'); + let products = require('../products'); exports.list = function list(request, response) { - return response.json(products); + let found = collection.find({}); + found.toArray(function(err, products) { + response.json(products); } -exports.show = function show(request, response) { - let product = products.find(x => x._id == request.params.productId); - response.json(product); -} - -exports.create = function create(request, response) { +exports.create = function(request, response) { let newProduct = request.body; - products.push(newProduct); + collection.insertMany(newProduct); response.json(newProduct); } -exports.update = function update(request, response) { - let product = products.find(x => x._id == request.parameters.productId); - product.name = body.name; - product.description = body.description; +exports.show = function(request, response) { + let findProduct = request.params.productId; + let product = collection.find({_id: findProduct}); response.json(product); } - -exports.remove = function remove(reqeust, response) { - let product = product.find(x => x._id == request.params.productId); - product.isActive = false; - response.send('deleted'); -} \ No newline at end of file diff --git a/controllers/vehicle.js b/controllers/vehicle.js index 5d8b7a5..84a0773 100644 --- a/controllers/vehicle.js +++ b/controllers/vehicle.js @@ -1,33 +1,24 @@ const {getDatabase} = require('../database'); +let db = getDatabase; +const collection = db.collection('vehicles'); + let vehicles = require('../vehicles'); exports.list = function list(request, response) { - return response.json(vehicles); + let found = collection.find({}); + found.toArray(function(err, vehicles) { + response.json(vehicles) + }); } -exports.show = function show(request, response) { - let vehicle = vehicles.find(x => x._id == request.params.vehicleId); - response.json(vehicle); +exports.create = function(request, response) { + let newVehicle = request.body; + collection.insertMany(newVehicle); + response.json(newVehicle); } -//* insert many - -// exports.create = function create(request, response) { -// let newVehicle = request.body; -// vehicles.push(newVehicle); -// response.json(newVehicle); -// } - -exports.update = function update(request, response) { - let vehicle = vehicles.find(i => i._id == request.params.vehicleId); - vehicle.make = body.make; - vehicle.year = body.year; - vehicle.model = body.model; +exports.show = function(request, response) { + let findVehicle = request.params.vehicleId; + let vehicle = collection.find({_id: findVehicle}); response.json(vehicle); } - -exports.remove = function remove(request, response) { - let vehicle = vehicle.find(i => i._id == request.params.vehicleId); - vehicle.isActive = false; - response.send('deleted'); -} \ No newline at end of file From 3a81a68e45dede09ac3d12a5344f4eba868d72a8 Mon Sep 17 00:00:00 2001 From: dbobb220 Date: Sun, 11 Aug 2019 12:32:53 -0500 Subject: [PATCH 8/8] complete part 5 --- controllers/comment.js | 38 +++++------ controllers/contact.js | 39 ++++++----- controllers/product.js | 38 +++++------ controllers/vehicle.js | 43 ++++++------ index.js | 5 ++ models/commentModel.js | 10 +++ models/contactModel.js | 12 ++++ models/productModel.js | 11 ++++ models/vehicleModel.js | 12 ++++ package-lock.json | 146 +++++++++++++++++++++++++++++++++++++++++ package.json | 3 +- 11 files changed, 274 insertions(+), 83 deletions(-) create mode 100644 models/commentModel.js create mode 100644 models/contactModel.js create mode 100644 models/productModel.js create mode 100644 models/vehicleModel.js diff --git a/controllers/comment.js b/controllers/comment.js index fff8acb..8904473 100644 --- a/controllers/comment.js +++ b/controllers/comment.js @@ -1,24 +1,20 @@ -const {getDatabase} = require('../database'); -let db = getDatabase; -const collection = db.collection('comments'); +let Comment = require("../models/commentModel") -let comments = require('../comments'); - -exports.list = function list(request, response) { - let found = collection.find({}); - found.toArray(function(err, comments) { - response.json(comments) - }); -} - -exports.create = function(request, response) { - let newComment = request.body; - collection.insertMany(newComment); - response.json(newComment); +exports.list = function list(req, res) { + Comment.find((err,c)=>{ + return res.json(c); + }); } - -exports.show = function(request, response) { - let findComment = request.params.commentId; - let comment = collection.find({_id: findComment}); - response.json(comment); +exports.show = function show(req, res) { + Comment.findById(req.params.id, (err,c)=>{ + return res.json(c); + }); } +exports.create = function create(req, res) { + const newComment = new Comment({ + body: req.body.body + }) + newComment.save().then(savedComment=>{ + console.log(savedComment) + }) +} diff --git a/controllers/contact.js b/controllers/contact.js index f7d3f54..9fdf064 100644 --- a/controllers/contact.js +++ b/controllers/contact.js @@ -1,23 +1,22 @@ -const {getDatabase} = require('../database'); -let db = getDatabase; -const collection = db.collection('contacts'); +let Contact = require("../models/contactModel") -let comments = require('../comments'); - -exports.list = function list(request, response) { - let found = collection.find({}); - found.toArray(function(err, contacts) { - response.json(contacts); -} - -exports.create = function(request, response) { - let newContact = request.body; - collection.insertMany(newContact); - response.json(newContact); +exports.list = function list(req, res) { + Contact.find((err,c)=>{ + return res.json(c); + }); } - -exports.show = function(request, response) { - let findContact = request.params.contactId; - let contact = collection.find({_id: findContact}); - response.json(contact); +exports.show = function show(req, res) { + Contact.findById(req.params.id, (err,c)=>{ + return res.json(c); + }); } +exports.create = function create(req, res) { + const newContact = new Contact({ + name: req.body.name, + occupation: req.body.occupation, + avatar: req.body.avatar + }) + newContact.save().then(savedContact=>{ + console.log(savedContact) + }) +} \ No newline at end of file diff --git a/controllers/product.js b/controllers/product.js index d757f1a..608c8c1 100644 --- a/controllers/product.js +++ b/controllers/product.js @@ -1,23 +1,21 @@ -const {getDatabase} = require('../database'); -let db = getDatabase; -const collection = db.collection('products'); +let Product = require("../models/productModel") -let products = require('../products'); - -exports.list = function list(request, response) { - let found = collection.find({}); - found.toArray(function(err, products) { - response.json(products); -} - -exports.create = function(request, response) { - let newProduct = request.body; - collection.insertMany(newProduct); - response.json(newProduct); +exports.list = function list(req, res) { + Product.find((err,p)=>{ + return res.json(p); + }); } - -exports.show = function(request, response) { - let findProduct = request.params.productId; - let product = collection.find({_id: findProduct}); - response.json(product); +exports.show = function show(req, res) { + Product.findById(req.params.id, (err,p)=>{ + return res.json(p); + }); } +exports.create = function create(req, res) { + const newProduct = new Product({ + name: req.body.name, + description: req.body.description + }) + newProduct.save().then(savedProduct=>{ + console.log(savedProduct) + }) +} diff --git a/controllers/vehicle.js b/controllers/vehicle.js index 84a0773..50b624d 100644 --- a/controllers/vehicle.js +++ b/controllers/vehicle.js @@ -1,24 +1,25 @@ -const {getDatabase} = require('../database'); -let db = getDatabase; -const collection = db.collection('vehicles'); +let Vehicle = require("../models/vehicleModel.js") -let vehicles = require('../vehicles'); - -exports.list = function list(request, response) { - let found = collection.find({}); - found.toArray(function(err, vehicles) { - response.json(vehicles) - }); -} - -exports.create = function(request, response) { - let newVehicle = request.body; - collection.insertMany(newVehicle); - response.json(newVehicle); +exports.list = function list(req, res) { + Vehicle.find((err,v)=>{ + if(err){ + console.log(err); + } + return res.json(v); + }); } - -exports.show = function(request, response) { - let findVehicle = request.params.vehicleId; - let vehicle = collection.find({_id: findVehicle}); - response.json(vehicle); +exports.show = function show(req, res) { + Vehicle.findById(req.params.id, (err,v)=>{ + return res.json(v); + }); } +exports.create = function create(req, res) { + const newVehicle = new Vehicle({ + year: req.body.year, + make: req.body.make, + model: req.body.model + }) + newVehicle.save().then(savedVehicle=>{ + console.log(savedVehicle) + }) +} diff --git a/index.js b/index.js index 7fd83c5..6894c65 100644 --- a/index.js +++ b/index.js @@ -1,9 +1,14 @@ let express = require("express"); +const mongoose = require('mongoose'); +const assert = require('assert'); +const dotenv = require('dotenv').config(); let commentRoutes = require('./routes/comment'); let productRoutes = require('./routes/product'); let contactRoutes = require('./routes/contact'); let vehicleRoutes = require('./routes/vehicle'); +mongoose.connect(`mongodb+srv://${process.env.DB_USER}:${process.env.DB_PASSWORD}@aca-practice-bx4sb.mongodb.net/test?retryWrites=true&w=majority`, {useNewUrlParser: true}); + const bodyParser = require("body-parser"); const app = express(); app.use(bodyParser.json()); diff --git a/models/commentModel.js b/models/commentModel.js new file mode 100644 index 0000000..4d5b562 --- /dev/null +++ b/models/commentModel.js @@ -0,0 +1,10 @@ +const mongoose = require('mongoose'); +const Schema = mongoose.Schema; + +const commentSchema = new Schema ({ + body: String +}) + +let Comment = mongoose.model('Comment', commentSchema); + +module.exports = Comment; diff --git a/models/contactModel.js b/models/contactModel.js new file mode 100644 index 0000000..5e2a4a8 --- /dev/null +++ b/models/contactModel.js @@ -0,0 +1,12 @@ +const mongoose = require('mongoose'); +const Schema = mongoose.Schema; + +const contactSchema = new Schema ({ + name: String, + occupation: String, + avatar: String +}) + +let Contact = mongoose.model('Contact', contactSchema); + +module.exports = Contact; diff --git a/models/productModel.js b/models/productModel.js new file mode 100644 index 0000000..ef24bbc --- /dev/null +++ b/models/productModel.js @@ -0,0 +1,11 @@ +const mongoose = require('mongoose'); +const Schema = mongoose.Schema; + +let productsSchema = new Schema({ + name: String, + description: String +}); + +let Product = mongoose.model('Product', productsSchema); + +module.exports = Product; diff --git a/models/vehicleModel.js b/models/vehicleModel.js new file mode 100644 index 0000000..4204d0b --- /dev/null +++ b/models/vehicleModel.js @@ -0,0 +1,12 @@ +const mongoose = require('mongoose'); +const Schema = mongoose.Schema; + +const vehicleSchema = new Schema ({ + year: Number, + make: String, + model: String +}) + +let Vehicle = mongoose.model('Vehicle', vehicleSchema); + +module.exports = Vehicle; diff --git a/package-lock.json b/package-lock.json index 3c727d8..ba52b32 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,19 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "requires": { + "lodash": "^4.17.11" + } + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" + }, "body-parser": { "version": "1.18.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", @@ -212,11 +225,27 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" }, + "kareem": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.0.tgz", + "integrity": "sha512-6hHxsp9e6zQU8nXsP+02HGWXwTkOEw6IROhF2ZA28cYbUk4eJ6QbtZvdqZOdD9YPKghG3apk5eOCvs+tLl3lRg==" + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, + "memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -262,6 +291,90 @@ "require_optional": "^1.0.1" } }, + "mongoose": { + "version": "5.6.9", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.6.9.tgz", + "integrity": "sha512-NRW5UJSmwyJxK+MRHmq+dQKgZqMZCpW1aPkpBZESqrrgF2J15Flo/4K3RYkSSQY7oKhfbgqZTPo+J1snJ3hJ3w==", + "requires": { + "async": "2.6.2", + "bson": "~1.1.1", + "kareem": "2.3.0", + "mongodb": "3.2.7", + "mongodb-core": "3.2.7", + "mongoose-legacy-pluralize": "1.0.2", + "mpath": "0.6.0", + "mquery": "3.2.1", + "ms": "2.1.2", + "regexp-clone": "1.0.0", + "safe-buffer": "5.1.2", + "sift": "7.0.1", + "sliced": "1.0.1" + }, + "dependencies": { + "bson": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.1.tgz", + "integrity": "sha512-jCGVYLoYMHDkOsbwJZBCqwMHyH4c+wzgI9hG7Z6SZJRXWr+x58pdIbm2i9a/jFGCkRJqRUr8eoI7lDWa0hTkxg==" + }, + "mongodb": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.2.7.tgz", + "integrity": "sha512-2YdWrdf1PJgxcCrT1tWoL6nHuk6hCxhddAAaEh8QJL231ci4+P9FLyqopbTm2Z2sAU6mhCri+wd9r1hOcHdoMw==", + "requires": { + "mongodb-core": "3.2.7", + "safe-buffer": "^5.1.2" + } + }, + "mongodb-core": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.2.7.tgz", + "integrity": "sha512-WypKdLxFNPOH/Jy6i9z47IjG2wIldA54iDZBmHMINcgKOUcWJh8og+Wix76oGd7EyYkHJKssQ2FAOw5Su/n4XQ==", + "requires": { + "bson": "^1.1.1", + "require_optional": "^1.0.1", + "safe-buffer": "^5.1.2", + "saslprep": "^1.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "mongoose-legacy-pluralize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", + "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" + }, + "mpath": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.6.0.tgz", + "integrity": "sha512-i75qh79MJ5Xo/sbhxrDrPSEG0H/mr1kcZXJ8dH6URU5jD/knFxCVqVC/gVSW7GIXL/9hHWlT9haLbCXWOll3qw==" + }, + "mquery": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.1.tgz", + "integrity": "sha512-kY/K8QToZWTTocm0U+r8rqcJCp5PRl6e8tPmoDs5OeSO3DInZE2rAL6AYH+V406JTo8305LdASOQcxRDqHojyw==", + "requires": { + "bluebird": "3.5.1", + "debug": "3.1.0", + "regexp-clone": "^1.0.0", + "safe-buffer": "5.1.2", + "sliced": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -320,6 +433,11 @@ "unpipe": "1.0.0" } }, + "regexp-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", + "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" + }, "require_optional": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", @@ -344,6 +462,15 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, "semver": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", @@ -392,6 +519,25 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" }, + "sift": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz", + "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==" + }, + "sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "optional": true, + "requires": { + "memory-pager": "^1.0.2" + } + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", diff --git a/package.json b/package.json index 6a20cb5..4b2a0d9 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "body-parser": "*", "dotenv": "^8.0.0", "express": "*", - "mongodb": "~3.0.8" + "mongodb": "~3.0.8", + "mongoose": "^5.6.9" } }