From eba60882b7303086105ffcb53055ad690a9effc7 Mon Sep 17 00:00:00 2001 From: alaynapuck28 Date: Mon, 22 Jul 2019 20:29:54 -0500 Subject: [PATCH 1/4] advanced practice part 1 --- index.js | 62 ++++++++++- package-lock.json | 278 +++++++++++++++++++++++++++++++++------------- package.json | 2 +- 3 files changed, 255 insertions(+), 87 deletions(-) diff --git a/index.js b/index.js index 3d47752..ac36381 100644 --- a/index.js +++ b/index.js @@ -2,7 +2,7 @@ let express = require("express"); let comments = require("./comments"); let products = require("./products"); let vehicles = require("./vehicles"); -let contacts = require("./contacts"); +let contacts = require("./contacts"); const bodyParser = require("body-parser"); const app = express(); @@ -11,10 +11,60 @@ app.use(express.static("public")); const thePort = 3001; +app.listen(thePort, err => { + if (err) { + return console.log("Error", err); + } + console.log("Web server is now listening for messages on port", thePort); +}); + +app.get("/contacts", function(req, res, next) { + return res.json(contacts); +}); +app.get("/vehicles", function(req, res, next) { + return res.json(vehicles); +}); +app.get("/comments", function(req, res, next) { + return res.json(comments); +}); +app.get("/products", function(req, res, next) { + return res.json(products); +}); + +app.get("/contacts: id", function(req, res, next) { + return res.json(contacts); +}); -app.listen(thePort, (err) => { - if (err) { - return console.log("Error", err); - } - console.log("Web server is now listening for messages on port",thePort); +app.get("/vehicles/:id", function(req, res) { + let vehicleID = vehicles.find(p => p._id == req.params.id); + res.json(vehicleID); +}); +app.get("/products/:id", function(req, res) { + let productsID = products.find(p => p._id == req.params.id); + res.json(productsID); +}); +app.get("/comments/:id", function(req, res) { + let commentsID = comments.find(p => p._id == req.params.id); + res.json(commentsID); +}); +app.get("/contacts/:id", function(req, res) { + let contactsID = contacts.find(p => p._id == req.params.id); + res.json(contactsID); +}); + +app.get("/contacts", function(req, res) { + let contactsID = contacts.find(p => p._id == req.params.id); + res.json(contactsID); +}); + +app.post("/vehicles", function(req, res) { + let vehicle = req.body; + vehicles.push(vehicle); + // res.json(vehicle); +}); +app.post("/contacts", function(req, res) { + // let contact = req.body; + contacts.push(req.body); + console.log(req); + // res.json(contact); }); diff --git a/package-lock.json b/package-lock.json index a533283..8bfd52a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,12 +5,27 @@ "requires": true, "dependencies": { "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "requires": { - "mime-types": "~2.1.18", - "negotiator": "0.6.1" + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "dependencies": { + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "requires": { + "mime-db": "1.40.0" + } + } } }, "array-flatten": { @@ -41,9 +56,12 @@ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } }, "content-type": { "version": "1.0.4", @@ -51,9 +69,9 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" }, "cookie-signature": { "version": "1.0.6", @@ -99,68 +117,141 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "express": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", - "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", "requires": { - "accepts": "~1.3.5", + "accepts": "~1.3.7", "array-flatten": "1.1.1", - "body-parser": "1.18.3", - "content-disposition": "0.5.2", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", "content-type": "~1.0.4", - "cookie": "0.3.1", + "cookie": "0.4.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "~1.1.2", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.1.1", + "finalhandler": "~1.1.2", "fresh": "0.5.2", "merge-descriptors": "1.0.1", "methods": "~1.1.2", "on-finished": "~2.3.0", - "parseurl": "~1.3.2", + "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.4", - "qs": "6.5.2", - "range-parser": "~1.2.0", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", "safe-buffer": "5.1.2", - "send": "0.16.2", - "serve-static": "1.13.2", - "setprototypeof": "1.1.0", - "statuses": "~1.4.0", - "type-is": "~1.6.16", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" }, "dependencies": { - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "requires": { + "mime-db": "1.40.0" + } + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } } } }, "finalhandler": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", - "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.4.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", "unpipe": "~1.0.0" - }, - "dependencies": { - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" - } } }, "forwarded": { @@ -198,9 +289,9 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ipaddr.js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", - "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" }, "media-typer": { "version": "0.3.0", @@ -218,9 +309,9 @@ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { "version": "1.37.0", @@ -241,9 +332,9 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, "on-finished": { "version": "2.3.0", @@ -254,9 +345,9 @@ } }, "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, "path-to-regexp": { "version": "0.1.7", @@ -264,12 +355,12 @@ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "proxy-addr": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", - "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", "requires": { "forwarded": "~0.1.2", - "ipaddr.js": "1.8.0" + "ipaddr.js": "1.9.0" } }, "qs": { @@ -278,9 +369,9 @@ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raw-body": { "version": "2.3.3", @@ -304,9 +395,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", "requires": { "debug": "2.6.9", "depd": "~1.1.2", @@ -315,30 +406,52 @@ "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "~1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" + "range-parser": "~1.2.1", + "statuses": "~1.5.0" }, "dependencies": { - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "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==" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" } } }, "serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "parseurl": "~1.3.2", - "send": "0.16.2" + "parseurl": "~1.3.3", + "send": "0.17.1" } }, "setprototypeof": { @@ -351,6 +464,11 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, "type-is": { "version": "1.6.16", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", diff --git a/package.json b/package.json index d82072f..5de4459 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,6 @@ "devDependencies": {}, "dependencies": { "body-parser": "*", - "express": "*" + "express": "^4.17.1" } } From 6f681e5674fd2f2dfb8d4c36592ffe8c7b3228f5 Mon Sep 17 00:00:00 2001 From: alaynapuck28 Date: Sun, 28 Jul 2019 14:06:21 -0500 Subject: [PATCH 2/4] added comments --- index.js | 67 +++++++++++++++++-------------- server/controllers/comments.js | 0 server/controllers/contacts.js | 0 server/controllers/controllers.js | 0 server/controllers/products.js | 0 server/routes/comments.js | 17 ++++++++ server/routes/contacts.js | 22 ++++++++++ server/routes/products.js | 15 +++++++ server/routes/vehicles.js | 0 9 files changed, 90 insertions(+), 31 deletions(-) create mode 100644 server/controllers/comments.js create mode 100644 server/controllers/contacts.js create mode 100644 server/controllers/controllers.js create mode 100644 server/controllers/products.js create mode 100644 server/routes/comments.js create mode 100644 server/routes/contacts.js create mode 100644 server/routes/products.js create mode 100644 server/routes/vehicles.js diff --git a/index.js b/index.js index ac36381..b006a1e 100644 --- a/index.js +++ b/index.js @@ -18,53 +18,58 @@ app.listen(thePort, err => { console.log("Web server is now listening for messages on port", thePort); }); -app.get("/contacts", function(req, res, next) { - return res.json(contacts); -}); -app.get("/vehicles", function(req, res, next) { - return res.json(vehicles); -}); +//*****Comments******/ + app.get("/comments", function(req, res, next) { return res.json(comments); }); -app.get("/products", function(req, res, next) { - return res.json(products); +app.get("/comments/:id", function(req, res) { + let commentsID = comments.find(p => p._id == req.params.id); + res.json(commentsID); }); -app.get("/contacts: id", function(req, res, next) { +app.post("/comments", (req, res) => { + let newComment = req.body; + comments.push(newComment); + res.json(newComment); +}); +//*****Contacts********/ +app.get("/contacts", function(req, res, next) { return res.json(contacts); }); -app.get("/vehicles/:id", function(req, res) { - let vehicleID = vehicles.find(p => p._id == req.params.id); - res.json(vehicleID); -}); -app.get("/products/:id", function(req, res) { - let productsID = products.find(p => p._id == req.params.id); - res.json(productsID); -}); -app.get("/comments/:id", function(req, res) { - let commentsID = comments.find(p => p._id == req.params.id); - res.json(commentsID); -}); app.get("/contacts/:id", function(req, res) { let contactsID = contacts.find(p => p._id == req.params.id); res.json(contactsID); }); - -app.get("/contacts", function(req, res) { - let contactsID = contacts.find(p => p._id == req.params.id); - res.json(contactsID); +app.post("/contacts", function(req, res) { + contacts.push(req.body); + console.log(req); }); +//*****Vehicles********/ +app.get("/vehicles", function(req, res, next) { + return res.json(vehicles); +}); +app.get("/vehicles/:id", function(req, res) { + let vehicleID = vehicles.find(p => p._id == req.params.id); + res.json(vehicleID); +}); app.post("/vehicles", function(req, res) { let vehicle = req.body; vehicles.push(vehicle); - // res.json(vehicle); }); -app.post("/contacts", function(req, res) { - // let contact = req.body; - contacts.push(req.body); - console.log(req); - // res.json(contact); +//*****Products********/ +app.get("/products", function(req, res, next) { + return res.json(products); +}); + +app.get("/products/:id", function(req, res) { + let productsID = products.find(p => p._id == req.params.id); + res.json(productsID); +}); +app.post("/products", (req, res) => { + let newProduct = req.body; + products.push(newProduct); + res.json(newProduct); }); diff --git a/server/controllers/comments.js b/server/controllers/comments.js new file mode 100644 index 0000000..e69de29 diff --git a/server/controllers/contacts.js b/server/controllers/contacts.js new file mode 100644 index 0000000..e69de29 diff --git a/server/controllers/controllers.js b/server/controllers/controllers.js new file mode 100644 index 0000000..e69de29 diff --git a/server/controllers/products.js b/server/controllers/products.js new file mode 100644 index 0000000..e69de29 diff --git a/server/routes/comments.js b/server/routes/comments.js new file mode 100644 index 0000000..118ee7f --- /dev/null +++ b/server/routes/comments.js @@ -0,0 +1,17 @@ +// const express = require("express"); +// const router = express.Router(); +// const { +// list, +// show, +// create, +// update, +// remove +// } = require("./controllers/comments.js"); + +// router.get("/comments", list); +// router.get("/comments/:id", show); +// router.post("/comments", create); +// router.put("/comments/:id", update); +// router.delete("/comments/:id", remove); + +// module.exports = router; diff --git a/server/routes/contacts.js b/server/routes/contacts.js new file mode 100644 index 0000000..cd413ed --- /dev/null +++ b/server/routes/contacts.js @@ -0,0 +1,22 @@ +// const { +// list, +// show, +// create, +// update, +// remove +// } = require("../controllers/contacts.js"); +// let contacts = require("../contacts"); + +// app.get("/contacts", function(req, res, next) { +// return res.json(contacts); +// }); +// app.get("/contacts/:id", function(req, res) { +// let contactsID = contacts.find(p => p._id == req.params.id); +// res.json(contactsID); +// }); +// app.post("/contacts", function(req, res) { +// // let contact = req.body; +// contacts.push(req.body); +// console.log(req); +// // res.json(contact); +// }); diff --git a/server/routes/products.js b/server/routes/products.js new file mode 100644 index 0000000..c0f4d64 --- /dev/null +++ b/server/routes/products.js @@ -0,0 +1,15 @@ +// let products = require("./products"); + +// app.get("/products", function(req, res, next) { +// return res.json(products); +// }); + +// app.get("/products/:id", function(req, res) { +// let productsID = products.find(p => p._id == req.params.id); +// res.json(productsID); +// }); +// app.post("/products", function(req, res) { +// let product = req.body; +// product.push(products); +// // res.json(vehicle); +// }); diff --git a/server/routes/vehicles.js b/server/routes/vehicles.js new file mode 100644 index 0000000..e69de29 From 35bfe6db8899632eab69a869892113e0c385d365 Mon Sep 17 00:00:00 2001 From: alaynapuck28 Date: Thu, 1 Aug 2019 15:59:20 -0500 Subject: [PATCH 3/4] server coding express --- index.js | 106 +++++++++++++---------- server/controllers/comments.js | 18 ++++ server/controllers/contacts.js | 19 ++++ server/controllers/controllers.js | 0 server/controllers/productControllers.js | 19 ++++ server/controllers/products.js | 0 server/controllers/vehicles.js | 17 ++++ server/routes/comments.js | 26 +++--- server/routes/contacts.js | 35 +++----- server/routes/products.js | 20 ++--- server/routes/vehicles.js | 15 ++++ 11 files changed, 181 insertions(+), 94 deletions(-) delete mode 100644 server/controllers/controllers.js create mode 100644 server/controllers/productControllers.js delete mode 100644 server/controllers/products.js create mode 100644 server/controllers/vehicles.js diff --git a/index.js b/index.js index b006a1e..b16addb 100644 --- a/index.js +++ b/index.js @@ -4,11 +4,23 @@ let products = require("./products"); let vehicles = require("./vehicles"); let contacts = require("./contacts"); -const bodyParser = require("body-parser"); const app = express(); + +const bodyParser = require("body-parser"); + app.use(bodyParser.json()); app.use(express.static("public")); +let productRoutes = require("./server/routes/products"); +let vehicleRoutes = require("./server/routes/vehicles"); +let commentRoutes = require("./server/routes/comments"); +let contactRoutes = require("./server/routes/contacts"); + +app.use(productRoutes); +app.use(vehicleRoutes); +app.use(commentRoutes); +app.use(contactRoutes); + const thePort = 3001; app.listen(thePort, err => { @@ -20,56 +32,56 @@ app.listen(thePort, err => { //*****Comments******/ -app.get("/comments", function(req, res, next) { - return res.json(comments); -}); -app.get("/comments/:id", function(req, res) { - let commentsID = comments.find(p => p._id == req.params.id); - res.json(commentsID); -}); +// app.get("/comments", function(req, res, next) { +// return res.json(comments); +// }); +// app.get("/comments/:id", function(req, res) { +// let commentsID = comments.find(p => p._id == req.params.id); +// res.json(commentsID); +// }); -app.post("/comments", (req, res) => { - let newComment = req.body; - comments.push(newComment); - res.json(newComment); -}); +// app.post("/comments", (req, res) => { +// let newComment = req.body; +// comments.push(newComment); +// res.json(newComment); +// }); //*****Contacts********/ -app.get("/contacts", function(req, res, next) { - return res.json(contacts); -}); +// app.get("/contacts", function(req, res, next) { +// return res.json(contacts); +// }); -app.get("/contacts/:id", function(req, res) { - let contactsID = contacts.find(p => p._id == req.params.id); - res.json(contactsID); -}); -app.post("/contacts", function(req, res) { - contacts.push(req.body); - console.log(req); -}); +// app.get("/contacts/:id", function(req, res) { +// let contactsID = contacts.find(p => p._id == req.params.id); +// res.json(contactsID); +// }); +// app.post("/contacts", function(req, res) { +// contacts.push(req.body); +// console.log(req); +// }); //*****Vehicles********/ -app.get("/vehicles", function(req, res, next) { - return res.json(vehicles); -}); -app.get("/vehicles/:id", function(req, res) { - let vehicleID = vehicles.find(p => p._id == req.params.id); - res.json(vehicleID); -}); -app.post("/vehicles", function(req, res) { - let vehicle = req.body; - vehicles.push(vehicle); -}); +// app.get("/vehicles", function(req, res, next) { +// return res.json(vehicles); +// }); +// app.get("/vehicles/:id", function(req, res) { +// let vehicleID = vehicles.find(p => p._id == req.params.id); +// res.json(vehicleID); +// }); +// app.post("/vehicles", function(req, res) { +// let vehicle = req.body; +// vehicles.push(vehicle); +// }); //*****Products********/ -app.get("/products", function(req, res, next) { - return res.json(products); -}); +// app.get("/products", function(req, res, next) { +// return res.json(products); +// }); -app.get("/products/:id", function(req, res) { - let productsID = products.find(p => p._id == req.params.id); - res.json(productsID); -}); -app.post("/products", (req, res) => { - let newProduct = req.body; - products.push(newProduct); - res.json(newProduct); -}); +// app.get("/products/:id", function(req, res) { +// let productsID = products.find(p => p._id == req.params.id); +// res.json(productsID); +// }); +// app.post("/products", (req, res) => { +// let newProduct = req.body; +// products.push(newProduct); +// res.json(newProduct); +// }); diff --git a/server/controllers/comments.js b/server/controllers/comments.js index e69de29..53f5eec 100644 --- a/server/controllers/comments.js +++ b/server/controllers/comments.js @@ -0,0 +1,18 @@ +let comments = require("../../comments"); + +exports.list = function(req, res, next) { + return res.json(comments); +}; + +exports.show = function show(req, res) { + let id = req.params.id; + let commentsID = comments.find(p => p["_id"] == id); + + return res.json(commentsID); +}; + +exports.create = function(req, res) { + let comment = req.body; + comments.push(comment); + return res.json(comments); +}; diff --git a/server/controllers/contacts.js b/server/controllers/contacts.js index e69de29..7884298 100644 --- a/server/controllers/contacts.js +++ b/server/controllers/contacts.js @@ -0,0 +1,19 @@ +let contacts = require("../../contacts"); + +exports.list = function(req, res, next) { + return res.json(contacts); +}; + +exports.show = function show(req, res) { + let id = req.params.id; + let contactsID = contacts.find(p => p["_id"] == id); + console.log(id); + console.log(contactsID); + return res.json(contactsID); +}; + +exports.create = function(req, res) { + let contact = req.body; + contacts.push(contact); + return res.json(contacts); +}; diff --git a/server/controllers/controllers.js b/server/controllers/controllers.js deleted file mode 100644 index e69de29..0000000 diff --git a/server/controllers/productControllers.js b/server/controllers/productControllers.js new file mode 100644 index 0000000..099703f --- /dev/null +++ b/server/controllers/productControllers.js @@ -0,0 +1,19 @@ +let products = require("../../products"); + +exports.list = function(req, res, next) { + return res.json(products); +}; + +exports.show = function show(req, res) { + let id = req.params.id; + let productsID = products.find(p => p["_id"] == id); + console.log(id); + console.log(productsID); + return res.json(productsID); +}; + +exports.create = function(req, res) { + let product = req.body; + products.push(product); + return res.json(products); +}; diff --git a/server/controllers/products.js b/server/controllers/products.js deleted file mode 100644 index e69de29..0000000 diff --git a/server/controllers/vehicles.js b/server/controllers/vehicles.js new file mode 100644 index 0000000..0623179 --- /dev/null +++ b/server/controllers/vehicles.js @@ -0,0 +1,17 @@ +let vehicles = require("../../vehicles"); + +exports.list = function(req, res, next) { + return res.json(vehicles); +}; + +exports.show = function show(req, res) { + let id = req.params.id; + let vehicleID = vehicles.find(p => p["_id"] == id); + return res.json(vehicleID); +}; + +exports.create = function(req, res) { + let vehicle = req.body; + vehicles.push(vehicle); + return res.json(vehicles); +}; diff --git a/server/routes/comments.js b/server/routes/comments.js index 118ee7f..ef9db42 100644 --- a/server/routes/comments.js +++ b/server/routes/comments.js @@ -1,17 +1,17 @@ -// const express = require("express"); -// const router = express.Router(); -// const { -// list, -// show, -// create, -// update, -// remove -// } = require("./controllers/comments.js"); +const express = require("express"); +const router = express.Router(); +const { + list, + show, + create, + update, + remove +} = require("../controllers/comments"); -// router.get("/comments", list); -// router.get("/comments/:id", show); -// router.post("/comments", create); +router.get("/comments", list); +router.get("/comments/:id", show); +router.post("/comments", create); // router.put("/comments/:id", update); // router.delete("/comments/:id", remove); -// module.exports = router; +module.exports = router; diff --git a/server/routes/contacts.js b/server/routes/contacts.js index cd413ed..9e1e41d 100644 --- a/server/routes/contacts.js +++ b/server/routes/contacts.js @@ -1,22 +1,15 @@ -// const { -// list, -// show, -// create, -// update, -// remove -// } = require("../controllers/contacts.js"); -// let contacts = require("../contacts"); +const express = require("express"); +const router = express.Router(); +const { + list, + show, + create, + update, + remove +} = require("../controllers/contacts"); -// app.get("/contacts", function(req, res, next) { -// return res.json(contacts); -// }); -// app.get("/contacts/:id", function(req, res) { -// let contactsID = contacts.find(p => p._id == req.params.id); -// res.json(contactsID); -// }); -// app.post("/contacts", function(req, res) { -// // let contact = req.body; -// contacts.push(req.body); -// console.log(req); -// // res.json(contact); -// }); +router.get("/contacts", list); +router.get("/contacts/:id", show); +router.post("/contacts", create); + +module.exports = router; diff --git a/server/routes/products.js b/server/routes/products.js index c0f4d64..080825b 100644 --- a/server/routes/products.js +++ b/server/routes/products.js @@ -1,15 +1,9 @@ -// let products = require("./products"); +const express = require("express"); +const router = express.Router(); +const { list, show, create } = require("../controllers/productControllers"); -// app.get("/products", function(req, res, next) { -// return res.json(products); -// }); +router.get("/products", list); +router.get("/products/:id", show); +router.post("/products", create); -// app.get("/products/:id", function(req, res) { -// let productsID = products.find(p => p._id == req.params.id); -// res.json(productsID); -// }); -// app.post("/products", function(req, res) { -// let product = req.body; -// product.push(products); -// // res.json(vehicle); -// }); +module.exports = router; diff --git a/server/routes/vehicles.js b/server/routes/vehicles.js index e69de29..c117f39 100644 --- a/server/routes/vehicles.js +++ b/server/routes/vehicles.js @@ -0,0 +1,15 @@ +const express = require("express"); +const router = express.Router(); +const { + list, + show, + create, + update, + remove +} = require("../controllers/vehicles.js"); + +router.get("/vehicles", list); +router.get("/vehicles/:id", show); +router.post("/vehicles", create); + +module.exports = router; From e9811b4e4d45a21a08b14b68392ade46a341ecf6 Mon Sep 17 00:00:00 2001 From: alaynapuck28 Date: Wed, 7 Aug 2019 10:49:33 -0500 Subject: [PATCH 4/4] products and contacts connect mongoose --- index.js | 19 +- package-lock.json | 420 ++++++++++++++--------- package.json | 3 +- server/controllers/contacts.js | 34 +- server/controllers/productControllers.js | 49 ++- server/models/commentModel.js | 7 + server/models/contactModel.js | 9 + server/models/productsModel.js | 9 + server/models/vehicles.js | 9 + 9 files changed, 367 insertions(+), 192 deletions(-) create mode 100644 server/models/commentModel.js create mode 100644 server/models/contactModel.js create mode 100644 server/models/productsModel.js create mode 100644 server/models/vehicles.js diff --git a/index.js b/index.js index b16addb..30f3404 100644 --- a/index.js +++ b/index.js @@ -12,15 +12,25 @@ app.use(bodyParser.json()); app.use(express.static("public")); let productRoutes = require("./server/routes/products"); -let vehicleRoutes = require("./server/routes/vehicles"); -let commentRoutes = require("./server/routes/comments"); +// let vehicleRoutes = require("./server/routes/vehicles"); +// let commentRoutes = require("./server/routes/comments"); let contactRoutes = require("./server/routes/contacts"); app.use(productRoutes); -app.use(vehicleRoutes); -app.use(commentRoutes); +// app.use(vehicleRoutes); +// app.use(commentRoutes); app.use(contactRoutes); +const mongoose = require("mongoose"); +mongoose.connect( + "mongodb+srv://alaynapuck28:horseshoe2@cluster0-3umzc.mongodb.net/test?retryWrites=true&w=majority", + { useNewUrlParser: true }, + err => { + console.log("the error is", err); + //start web server + } +); + const thePort = 3001; app.listen(thePort, err => { @@ -30,6 +40,7 @@ app.listen(thePort, err => { console.log("Web server is now listening for messages on port", thePort); }); +//=========Original Code for indexjs==========/ //*****Comments******/ // app.get("/comments", function(req, res, next) { diff --git a/package-lock.json b/package-lock.json index 8bfd52a..f19817f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,21 +11,6 @@ "requires": { "mime-types": "~2.1.24", "negotiator": "0.6.2" - }, - "dependencies": { - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" - } - } } }, "array-flatten": { @@ -33,27 +18,60 @@ "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", - "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", "requires": { - "bytes": "3.0.0", + "bytes": "3.1.0", "content-type": "~1.0.4", "debug": "2.6.9", "depd": "~1.1.2", - "http-errors": "~1.6.3", - "iconv-lite": "0.4.23", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", "on-finished": "~2.3.0", - "qs": "6.5.2", - "raw-body": "2.3.3", - "type-is": "~1.6.16" + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, + "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", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, "content-disposition": { "version": "0.5.3", @@ -79,11 +97,18 @@ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "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" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, "depd": { @@ -153,90 +178,18 @@ "vary": "~1.1.2" }, "dependencies": { - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" + "ms": "2.0.0" } }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" - } - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -252,6 +205,21 @@ "parseurl": "~1.3.3", "statuses": "~1.5.0", "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, "forwarded": { @@ -265,20 +233,21 @@ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "requires": { "depd": "~1.1.2", "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" } }, "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -293,11 +262,27 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" }, + "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", @@ -314,22 +299,84 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", - "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" }, "mime-types": { - "version": "2.1.21", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", - "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "requires": { + "mime-db": "1.40.0" + } + }, + "mongodb": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.2.7.tgz", + "integrity": "sha512-2YdWrdf1PJgxcCrT1tWoL6nHuk6hCxhddAAaEh8QJL231ci4+P9FLyqopbTm2Z2sAU6mhCri+wd9r1hOcHdoMw==", "requires": { - "mime-db": "~1.37.0" + "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" + } + }, + "mongoose": { + "version": "5.6.8", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.6.8.tgz", + "integrity": "sha512-BhgGU/KvnVX8WbamcWgtG/45rp+xZnaF9MhNbzESIIYxK7g5QurXYcaGGCm/JFiIdIxkVUgBycWG7UzRUEzvDg==", + "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" + } + }, + "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" } }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "negotiator": { "version": "0.6.2", @@ -364,9 +411,9 @@ } }, "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" }, "range-parser": { "version": "1.2.1", @@ -374,16 +421,35 @@ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raw-body": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", - "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", "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", + "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", @@ -394,6 +460,20 @@ "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", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" + }, "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", @@ -414,32 +494,25 @@ "statuses": "~1.5.0" }, "dependencies": { - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, "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==" - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" } } }, @@ -455,9 +528,28 @@ } }, "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "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", @@ -470,12 +562,12 @@ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "requires": { "media-typer": "0.3.0", - "mime-types": "~2.1.18" + "mime-types": "~2.1.24" } }, "unpipe": { diff --git a/package.json b/package.json index 5de4459..70482cd 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "devDependencies": {}, "dependencies": { "body-parser": "*", - "express": "^4.17.1" + "express": "^4.17.1", + "mongoose": "*" } } diff --git a/server/controllers/contacts.js b/server/controllers/contacts.js index 7884298..9220ecc 100644 --- a/server/controllers/contacts.js +++ b/server/controllers/contacts.js @@ -1,19 +1,33 @@ -let contacts = require("../../contacts"); +const Contact = require("../models/contactModel"); exports.list = function(req, res, next) { - return res.json(contacts); + Contact.find((e, v) => { + return res.json(v); + }); }; exports.show = function show(req, res) { - let id = req.params.id; - let contactsID = contacts.find(p => p["_id"] == id); - console.log(id); - console.log(contactsID); - return res.json(contactsID); + Contact.findById(req.params.id, (err, v) => { + return res.json(v); + }); }; exports.create = function(req, res) { - let contact = req.body; - contacts.push(contact); - return res.json(contacts); + let item = { + name: req.body.name, + occupation: req.body.occupation, + avatar: req.body.avatar + }; + + let newContact = new Contact(item); + newContact.save(); }; + +//====old show function===== +// exports.show = function show(req, res) { +// let id = req.params.id; +// let contactsID = contacts.find(p => p["_id"] == id); +// console.log(id); +// console.log(contactsID); +// return res.json(contactsID); +// }; diff --git a/server/controllers/productControllers.js b/server/controllers/productControllers.js index 099703f..361f6e0 100644 --- a/server/controllers/productControllers.js +++ b/server/controllers/productControllers.js @@ -1,19 +1,42 @@ -let products = require("../../products"); +const Product = require("../models/productsModel"); -exports.list = function(req, res, next) { - return res.json(products); +exports.create = function create(req, res) { + let item = { + name: req.body.name, + description: req.body.description + }; + let newProduct = new Product(item); + newProduct.save(); }; -exports.show = function show(req, res) { - let id = req.params.id; - let productsID = products.find(p => p["_id"] == id); - console.log(id); - console.log(productsID); - return res.json(productsID); +exports.list = function list(req, res) { + Product.find((e, v) => { + return res.json(v); + }); }; -exports.create = function(req, res) { - let product = req.body; - products.push(product); - return res.json(products); +exports.show = function show(req, res) { + Product.findById(req.params.id, (err, v) => { + return res.json(v); + }); }; + +// let products = require("../../products"); + +// exports.list = function(req, res, next) { +// return res.json(products); +// }; + +// exports.show = function show(req, res) { +// let id = req.params.id; +// let productsID = products.find(p => p["_id"] == id); +// console.log(id); +// console.log(productsID); +// return res.json(productsID); +// }; + +// exports.create = function(req, res) { +// let product = req.body; +// products.push(product); +// return res.json(products); +// }; diff --git a/server/models/commentModel.js b/server/models/commentModel.js new file mode 100644 index 0000000..7738908 --- /dev/null +++ b/server/models/commentModel.js @@ -0,0 +1,7 @@ +const mongoose = require("mongoose"); +var commentSchema = new mongoose.Schema({ + body: String +}); +var Comment = mongoose.model("Comment", commentSchema); + +module.exports = Comment; diff --git a/server/models/contactModel.js b/server/models/contactModel.js new file mode 100644 index 0000000..ec8b7a6 --- /dev/null +++ b/server/models/contactModel.js @@ -0,0 +1,9 @@ +const mongoose = require("mongoose"); +var contactSchema = new mongoose.Schema({ + name: String, + occupation: String, + avatar: String +}); +var Contact = mongoose.model("Contact", contactSchema); + +module.exports = Contact; diff --git a/server/models/productsModel.js b/server/models/productsModel.js new file mode 100644 index 0000000..afec93b --- /dev/null +++ b/server/models/productsModel.js @@ -0,0 +1,9 @@ +const mongoose = require("mongoose"); +let productsSchema = new mongoose.Schema({ + name: String, + description: String +}); + +let Product = mongoose.model("Product", productsSchema); + +module.exports = Product; diff --git a/server/models/vehicles.js b/server/models/vehicles.js new file mode 100644 index 0000000..2405f8f --- /dev/null +++ b/server/models/vehicles.js @@ -0,0 +1,9 @@ +const mongoose = require("mongoose"); +var vehicleSchema = new mongoose.Schema({ + year: Number, + make: String, + model: String +}); +var Vehicle = mongoose.model("Vehicle", vehicleSchema); + +module.exports = Vehicle;