From 06523195e55fbb777a8c442fe3a5e968049f78b6 Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Sat, 21 Jul 2018 18:27:14 +0600 Subject: [PATCH 01/39] project initialized --- package.json | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 package.json diff --git a/package.json b/package.json new file mode 100644 index 0000000..f1f7262 --- /dev/null +++ b/package.json @@ -0,0 +1,19 @@ +{ + "name": "pcist-shop", + "version": "0.0.1", + "description": "A shop you can get item for free", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/pcIST/API_Development.git" + }, + "author": "pcIST", + "license": "ISC", + "bugs": { + "url": "https://github.com/pcIST/API_Development/issues" + }, + "homepage": "https://github.com/pcIST/API_Development#readme" +} From 7169e10db906008c111bcfb1162e0fb2f5483d87 Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Sat, 21 Jul 2018 18:29:37 +0600 Subject: [PATCH 02/39] changed the author --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f1f7262..4123e1b 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "type": "git", "url": "git+https://github.com/pcIST/API_Development.git" }, - "author": "pcIST", + "author": "Everyone of pcIST", "license": "ISC", "bugs": { "url": "https://github.com/pcIST/API_Development/issues" From c2936ae0a133a18447e1db2b49ed9fe24be61919 Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Sat, 21 Jul 2018 20:36:56 +0600 Subject: [PATCH 03/39] created server with nodeJS. Contains buggy code, please someone fix this bug --- index.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 index.js diff --git a/index.js b/index.js new file mode 100644 index 0000000..629ce31 --- /dev/null +++ b/index.js @@ -0,0 +1,43 @@ +const http = require('http'); +const server = http.createServer( function (req, res) { + console.log("server running"); + // console.log(res); + // res.statusCode = 200; + res.end("server created"); + // let name = "IST"; + // res.json({"name": "pcIST shop", "time": new Date()}); +}) + +server.listen(3000, "localhost", function() { + const options = { + port: 3000, + host: "localhost", + path: "/", + method: "GET" + }; + + const req = http.request(options); + req.end(); + + req.on("end", function (res, socket, upgradeHead) { + console.log("user hit the root URL"); + res.end("user hit the root URL"); + socket.end(); + }) + +}) + +let shop_option = { + port: 3000, + host: "localhost", + path: "/shop", + method: "GET" +}; + +http.get(shop_option, (res) => { + res.on("end", function (res, socket, upgradeHead) { + console.log("user hit the shop URL"); + res.end("user hit the shop URL"); + socket.end(); + }) +}) \ No newline at end of file From 5d43f75762572651830fa04ee76ef2d6cbd74673 Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Sat, 28 Jul 2018 19:23:03 +0600 Subject: [PATCH 04/39] server routing problem solved --- index.js | 59 ++++++++++++++++++-------------------------------------- 1 file changed, 19 insertions(+), 40 deletions(-) diff --git a/index.js b/index.js index 629ce31..140d081 100644 --- a/index.js +++ b/index.js @@ -1,43 +1,22 @@ -const http = require('http'); -const server = http.createServer( function (req, res) { - console.log("server running"); - // console.log(res); - // res.statusCode = 200; - res.end("server created"); - // let name = "IST"; - // res.json({"name": "pcIST shop", "time": new Date()}); -}) - -server.listen(3000, "localhost", function() { - const options = { - port: 3000, - host: "localhost", - path: "/", - method: "GET" - }; - - const req = http.request(options); - req.end(); +// importing http package +const http = require('http') - req.on("end", function (res, socket, upgradeHead) { - console.log("user hit the root URL"); - res.end("user hit the root URL"); - socket.end(); - }) +// creating a basic server +const server = http.createServer( function (req, res) { + console.log("the req URL is: ") + console.log(req.url) + // basic routing + if (req.url == "/") { + res.end("this is the homepage") + } else if (req.url == "/item") { + res.statusCode = 200 + res.end("you are in the item page") + } else { + res.statusCode = 404 + res.end("this is NOT the homepage") + } +}).listen(3000, 'localhost', function() { + console.log("the port is: ") + console.log(server.address().port) }) - -let shop_option = { - port: 3000, - host: "localhost", - path: "/shop", - method: "GET" -}; - -http.get(shop_option, (res) => { - res.on("end", function (res, socket, upgradeHead) { - console.log("user hit the shop URL"); - res.end("user hit the shop URL"); - socket.end(); - }) -}) \ No newline at end of file From 6bb9a0da911c0a7857c9af29e76b27c702a640e2 Mon Sep 17 00:00:00 2001 From: Redwanuzzaman Date: Sat, 28 Jul 2018 19:54:04 +0600 Subject: [PATCH 05/39] Redwanuzzaman's Info has been added --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index dd2c660..e478e8a 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ # API Development with NodeJS This project is gonna be awesome! + +Redwanuzzaman CSE-1692 \ No newline at end of file From 006ab3de415e0a3ec34fe57882b74f170402cc54 Mon Sep 17 00:00:00 2001 From: Rezauloni Date: Thu, 2 Aug 2018 04:30:19 +0600 Subject: [PATCH 06/39] Added my Rezaul Alam Oni to Readme.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index dd2c660..a2554fe 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ # API Development with NodeJS This project is gonna be awesome! + + +Hi this is Rezaul Alam Oni CSE 21th Batch . From 7239e24a749ac71f5c6663f1dde1cc78fa48e05b Mon Sep 17 00:00:00 2001 From: Rezauloni Date: Thu, 2 Aug 2018 13:11:23 +0600 Subject: [PATCH 07/39] Added new Route /profile --- index.js | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/index.js b/index.js index 140d081..bcc70e5 100644 --- a/index.js +++ b/index.js @@ -1,22 +1,28 @@ // importing http package -const http = require('http') +const http = require('http'); // creating a basic server const server = http.createServer( function (req, res) { - console.log("the req URL is: ") - console.log(req.url) + console.log("the req URL is: "); + console.log(req.url); // basic routing if (req.url == "/") { res.end("this is the homepage") } else if (req.url == "/item") { - res.statusCode = 200 + res.statusCode = 200; res.end("you are in the item page") + }else if (req.url == "/profile"){ + res.statusCode == 200; + res.end("You are in profile page"); } else { - res.statusCode = 404 + res.statusCode = 404; res.end("this is NOT the homepage") } + + + }).listen(3000, 'localhost', function() { - console.log("the port is: ") - console.log(server.address().port) -}) + console.log("the port is: "); + console.log(server.address().port); +}); From dfce3639927a5f1e0205a6b63d273fa35c48405e Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Sat, 15 Sep 2018 19:13:55 +0600 Subject: [PATCH 08/39] installed express package --- package-lock.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 5 +- 2 files changed, 377 insertions(+), 1 deletion(-) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..d74843d --- /dev/null +++ b/package-lock.json @@ -0,0 +1,373 @@ +{ + "name": "pcist-shop", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "requires": { + "mime-types": "~2.1.18", + "negotiator": "0.6.1" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.1", + "http-errors": "~1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "~2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "~1.6.15" + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "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=" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "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=" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "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" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.16.3", + "resolved": "http://registry.npmjs.org/express/-/express-4.16.3.tgz", + "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", + "requires": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "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", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.3", + "qs": "6.5.1", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "finalhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "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", + "unpipe": "~1.0.0" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "http-errors": { + "version": "1.6.3", + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "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=" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "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==" + }, + "mime-db": { + "version": "1.36.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", + "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" + }, + "mime-types": { + "version": "2.1.20", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", + "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "requires": { + "mime-db": "~1.36.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "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==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.8.0" + } + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": ">= 1.3.1 < 2" + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + } + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "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", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.18" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + } + } +} diff --git a/package.json b/package.json index 4123e1b..d8b3e0d 100644 --- a/package.json +++ b/package.json @@ -15,5 +15,8 @@ "bugs": { "url": "https://github.com/pcIST/API_Development/issues" }, - "homepage": "https://github.com/pcIST/API_Development#readme" + "homepage": "https://github.com/pcIST/API_Development#readme", + "dependencies": { + "express": "^4.16.3" + } } From 4544034cfd61ce25f0a74f574bc8ebca31e198fd Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Sat, 15 Sep 2018 19:14:17 +0600 Subject: [PATCH 09/39] ignoring some files --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules From f0d122b22041c183d91890f2598aa9aa06900eab Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Sat, 22 Sep 2018 19:08:18 +0600 Subject: [PATCH 10/39] using express routes --- index.js | 62 ++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 38 insertions(+), 24 deletions(-) diff --git a/index.js b/index.js index bcc70e5..c5b8cc8 100644 --- a/index.js +++ b/index.js @@ -1,28 +1,42 @@ -// importing http package -const http = require('http'); +// // importing http package +// const http = require('http'); -// creating a basic server -const server = http.createServer( function (req, res) { - console.log("the req URL is: "); - console.log(req.url); +// // creating a basic server +// const server = http.createServer( function (req, res) { +// console.log("the req URL is: "); +// console.log(req.url); - // basic routing - if (req.url == "/") { - res.end("this is the homepage") - } else if (req.url == "/item") { - res.statusCode = 200; - res.end("you are in the item page") - }else if (req.url == "/profile"){ - res.statusCode == 200; - res.end("You are in profile page"); - } else { - res.statusCode = 404; - res.end("this is NOT the homepage") - } +// // basic routing +// if (req.url == "/") { +// res.end("this is the homepage") +// } else if (req.url == "/item") { +// res.statusCode = 200; +// res.end("you are in the item page") +// } else if (req.url == "/profile"){ +// res.statusCode == 200; +// res.end("You are in profile page"); +// } else if (req.url == "/demo"){ +// res.statusCode == 200; +// res.end("This is the demo page"); +// } else { +// res.statusCode = 404; +// res.end("you lost, bro or sis?") +// } +// }).listen(3000, 'localhost', function() { +// console.log("the port is: "); +// console.log(server.address().port); +// }); - -}).listen(3000, 'localhost', function() { - console.log("the port is: "); - console.log(server.address().port); -}); +const express = require('express') +const app = express() +const port = 3001 + +const myfunc = (req, res) => + res.send('this is the homepage') + +app.get('/', myfunc) + +app.listen(port, () => + console.log(`Our app listening on port ${port}!`) +) From ecd6c82512e7f0d29ca09eda41b85a372110dd90 Mon Sep 17 00:00:00 2001 From: rkshaon Date: Sat, 22 Sep 2018 19:25:41 +0600 Subject: [PATCH 11/39] shaon path added --- index.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/index.js b/index.js index c5b8cc8..bf4ae8e 100644 --- a/index.js +++ b/index.js @@ -37,6 +37,11 @@ const myfunc = (req, res) => app.get('/', myfunc) +const shaonFunc = (req, res) => + res.send('This page belongs to Shaon') + +app.get('/shaon', shaonFunc) + app.listen(port, () => console.log(`Our app listening on port ${port}!`) ) From d42d85d1349fea57bf00493ac05a987870cb242c Mon Sep 17 00:00:00 2001 From: Saiful Islam Rasel Date: Sat, 22 Sep 2018 19:34:03 +0600 Subject: [PATCH 12/39] sir root created --- index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index c5b8cc8..174d1f7 100644 --- a/index.js +++ b/index.js @@ -21,7 +21,7 @@ // } else { // res.statusCode = 404; // res.end("you lost, bro or sis?") -// } +// } // }).listen(3000, 'localhost', function() { // console.log("the port is: "); // console.log(server.address().port); @@ -37,6 +37,9 @@ const myfunc = (req, res) => app.get('/', myfunc) +// sir root +app.get('/sir',(req,res)=>res.send('You are in sir page')); + app.listen(port, () => console.log(`Our app listening on port ${port}!`) ) From 1040f7857c3060e0bb3e32c19573891c0339dec7 Mon Sep 17 00:00:00 2001 From: Redwanuzzaman Date: Sat, 22 Sep 2018 19:41:18 +0600 Subject: [PATCH 13/39] Another Root added by Redwanuzzaman --- index.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/index.js b/index.js index c5b8cc8..efea484 100644 --- a/index.js +++ b/index.js @@ -35,8 +35,13 @@ const port = 3001 const myfunc = (req, res) => res.send('this is the homepage') +const redwan = (req, res) => + res.send("Keep Calm ! You are in REDWAN's place") + app.get('/', myfunc) +app.get('/redwan', redwan) + app.listen(port, () => console.log(`Our app listening on port ${port}!`) ) From e4abc08aa431658ee71dfcb9eb9e6e41f95cd73d Mon Sep 17 00:00:00 2001 From: RussellMurad Date: Sat, 22 Sep 2018 19:43:20 +0600 Subject: [PATCH 14/39] This is changed version from earliar index.js with express --- index.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index c5b8cc8..12b4d44 100644 --- a/index.js +++ b/index.js @@ -21,7 +21,7 @@ // } else { // res.statusCode = 404; // res.end("you lost, bro or sis?") -// } +// } // }).listen(3000, 'localhost', function() { // console.log("the port is: "); // console.log(server.address().port); @@ -37,6 +37,12 @@ const myfunc = (req, res) => app.get('/', myfunc) + +const Russellfunc = (req, res) => + res.send('This Is The Homepage Of RussellMurad') + +app.get('/russell', Russellfunc) + app.listen(port, () => console.log(`Our app listening on port ${port}!`) ) From e6f51bd08ac14828506deae8638a407ba7ec0de7 Mon Sep 17 00:00:00 2001 From: Aditya Date: Sat, 22 Sep 2018 20:03:34 +0600 Subject: [PATCH 15/39] aditya path --- index.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/index.js b/index.js index c5b8cc8..f18394d 100644 --- a/index.js +++ b/index.js @@ -37,6 +37,11 @@ const myfunc = (req, res) => app.get('/', myfunc) +// aditya path +const adityafunc = (req, res) => + res.send('this is the aditya page'); +app.get('/aditya',adityafunc); + app.listen(port, () => console.log(`Our app listening on port ${port}!`) ) From 56211a855bf8c2f0a76a886fceed5154d40ff22b Mon Sep 17 00:00:00 2001 From: mjannat Date: Sat, 22 Sep 2018 20:19:09 +0600 Subject: [PATCH 16/39] Another Root added by Mim Jannat --- index.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/index.js b/index.js index c5b8cc8..30a96f2 100644 --- a/index.js +++ b/index.js @@ -35,8 +35,12 @@ const port = 3001 const myfunc = (req, res) => res.send('this is the homepage') +const mim = (req, res) => + res.send('Welcome :)') + app.get('/', myfunc) +app.get('/mim', mim) app.listen(port, () => console.log(`Our app listening on port ${port}!`) ) From b05d095c57ffcd1174923dd4f4eef2489122cb00 Mon Sep 17 00:00:00 2001 From: arif-btkrm Date: Sat, 6 Oct 2018 00:58:42 +0600 Subject: [PATCH 17/39] Added Arif's World --- index.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/index.js b/index.js index d117f51..8aa44a9 100644 --- a/index.js +++ b/index.js @@ -68,6 +68,12 @@ const shaonFunc = (req, res) => app.get('/shaon', shaonFunc) +// Arif's World + +app.get('/arif',(req,res)=>{ + res.send("Welcome to Arif's World"); +}); + app.listen(port, () => console.log(`Our app listening on port ${port}!`) ) From e52ee730c5c70cffae42a9fb99a98a6400d4e101 Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Sat, 6 Oct 2018 19:28:33 +0600 Subject: [PATCH 18/39] inital structure done for router --- index.js | 77 +++++------------------------------------------ router/product.js | 20 ++++++++++++ router/site.js | 36 ++++++++++++++++++++++ 3 files changed, 64 insertions(+), 69 deletions(-) create mode 100644 router/product.js create mode 100644 router/site.js diff --git a/index.js b/index.js index 8aa44a9..d8c23ea 100644 --- a/index.js +++ b/index.js @@ -1,78 +1,17 @@ -// // importing http package -// const http = require('http'); - -// // creating a basic server -// const server = http.createServer( function (req, res) { -// console.log("the req URL is: "); -// console.log(req.url); - -// // basic routing -// if (req.url == "/") { -// res.end("this is the homepage") -// } else if (req.url == "/item") { -// res.statusCode = 200; -// res.end("you are in the item page") -// } else if (req.url == "/profile"){ -// res.statusCode == 200; -// res.end("You are in profile page"); -// } else if (req.url == "/demo"){ -// res.statusCode == 200; -// res.end("This is the demo page"); -// } else { -// res.statusCode = 404; -// res.end("you lost, bro or sis?") -// } -// }).listen(3000, 'localhost', function() { -// console.log("the port is: "); -// console.log(server.address().port); -// }); - - const express = require('express') const app = express() const port = 3001 -const myfunc = (req, res) => - res.send('this is the homepage') - - -const mim = (req, res) => - res.send('Welcome :)') - -app.get('/mim', mim) - -const redwan = (req, res) => - res.send("Keep Calm ! You are in REDWAN's place") - -app.get('/', myfunc) +const profile_router = require('./router/site') +const product_router = require('./router/product') -app.get('/redwan', redwan) +app.use('/profile', profile_router) +app.use('/product', product_router) -// aditya path -const adityafunc = (req, res) => - res.send('this is the aditya page'); -app.get('/aditya',adityafunc); - -// RussellExpress -const Russellfunc = (req, res) => - res.send('This Is The Homepage Of RussellMurad') - -app.get('/russell', Russellfunc) - -// sir root -app.get('/sir',(req,res)=>res.send('You are in sir page')); - -// shaon's page -const shaonFunc = (req, res) => - res.send('This page belongs to Shaon') - -app.get('/shaon', shaonFunc) - -// Arif's World - -app.get('/arif',(req,res)=>{ - res.send("Welcome to Arif's World"); -}); +// healthcheck +app.get('/', (req, res) => + res.send('Health ok!') +) app.listen(port, () => console.log(`Our app listening on port ${port}!`) diff --git a/router/product.js b/router/product.js new file mode 100644 index 0000000..983ed72 --- /dev/null +++ b/router/product.js @@ -0,0 +1,20 @@ +const express = require('express') +const product_router = express.Router() + +product_router.get('/', (req, res) => { + res.send('amader product list ekhane dekha jabe') +}) + +product_router.get('/tel', (req, res) => { + res.send('tel er dam ajke 100 taka') +}) + +product_router.get('/saban', (req, res) => { + res.send("saban 1 pc 25 taka") +}) + +product_router.get('/lobon', (req, res) => { + res.send('ayodin mukto lobon 10 taka') +}) + +module.exports = product_router \ No newline at end of file diff --git a/router/site.js b/router/site.js new file mode 100644 index 0000000..059ba74 --- /dev/null +++ b/router/site.js @@ -0,0 +1,36 @@ +const express = require('express') +const profile_router = express.Router() + +profile_router.get('/', (req, res) => { + res.send('kake khujchen? proper URL din') +}) + +profile_router.get('/mim', (req, res) => { + res.send('Welcome :)') +}) + +profile_router.get('/redwan', (req, res) => { + res.send("Keep Calm ! You are in REDWAN's place") +}) + +profile_router.get('/aditya', (req, res) => { + res.send('this is the aditya page') +}) + +profile_router.get('/russell', (req, res) => { + res.send('This Is The Homepage Of RussellMurad') +}) + +profile_router.get('/sir', (req,res) => { + res.send('You are in sir page') +}) + +profile_router.get('/shaon', (req, res) => { + res.send('This page belongs to Shaon') +}) + +profile_router.get('/arif', (req,res) => { + res.send("Welcome to Arif's World") +}) + +module.exports = profile_router \ No newline at end of file From 6e5430d18e6aa844a138f9f678806e4321918d51 Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Tue, 23 Oct 2018 01:00:25 +0600 Subject: [PATCH 19/39] installed body-parser, express and mongoose --- package-lock.json | 319 ++++++++++++++++++++++++++++++++++++++++------ package.json | 4 +- 2 files changed, 282 insertions(+), 41 deletions(-) diff --git a/package-lock.json b/package-lock.json index d74843d..08c9201 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,23 +18,48 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "requires": { + "lodash": "^4.17.10" + } + }, + "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.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", - "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", "requires": { "bytes": "3.0.0", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.1", - "http-errors": "~1.6.2", - "iconv-lite": "0.4.19", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", "on-finished": "~2.3.0", - "qs": "6.5.1", - "raw-body": "2.3.2", - "type-is": "~1.6.15" + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + } } }, + "bson": { + "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", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -133,6 +158,64 @@ "type-is": "~1.6.16", "utils-merge": "1.0.1", "vary": "~1.1.2" + }, + "dependencies": { + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.1", + "http-errors": "~1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "~2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "~1.6.15" + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": ">= 1.3.1 < 2" + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + } + } + } } }, "finalhandler": { @@ -171,9 +254,12 @@ } }, "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } }, "inherits": { "version": "2.0.3", @@ -185,11 +271,32 @@ "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.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, "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.1.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.1.0.tgz", + "integrity": "sha512-Mf9OHV/Y7h6YWDxTzX/b4ZZ4oh9NSXblQL8dtPCOomOtZciEHxePR78+uHFLLlsk01A6jVHhHsQZZ/WcIPpnzg==", + "optional": true + }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -218,6 +325,109 @@ "mime-db": "~1.36.0" } }, + "mongodb": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.6.tgz", + "integrity": "sha512-E5QJuXQoMlT7KyCYqNNMfAkhfQD79AT4F8Xd+6x37OX+8BL17GyXyWvfm6wuyx4wnzCCPoCSLeMeUN2S7dU9yw==", + "requires": { + "mongodb-core": "3.1.5", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "mongodb-core": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.5.tgz", + "integrity": "sha512-emT/tM4ZBinqd6RZok+EzDdtN4LjYJIckv71qQVOEFmvXgT5cperZegVmTgox/1cx4XQu6LJ5ZuIwipP/eKdQg==", + "requires": { + "bson": "^1.1.0", + "require_optional": "^1.0.1", + "safe-buffer": "^5.1.2", + "saslprep": "^1.0.0" + }, + "dependencies": { + "bson": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.0.tgz", + "integrity": "sha512-9Aeai9TacfNtWXOYarkFJRW2CWo+dRon+fuLZYJmvLV3+MiUp0bEI6IAZfXEIg7/Pl/7IWlLaDnhzTsD81etQA==" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "mongoose": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.3.4.tgz", + "integrity": "sha512-DIUWOyYgZv2zGi/BoFEaFiaCVuDonnzGhW3cnc3JFjBScYn6z24tS2j3VB0dtMoX8FFjxmmMVnlmHPEIbV4PKA==", + "requires": { + "async": "2.6.1", + "bson": "~1.0.5", + "kareem": "2.3.0", + "lodash.get": "4.4.2", + "mongodb": "3.1.6", + "mongodb-core": "3.1.5", + "mongoose-legacy-pluralize": "1.0.2", + "mpath": "0.5.1", + "mquery": "3.2.0", + "ms": "2.0.0", + "regexp-clone": "0.0.1", + "safe-buffer": "5.1.2", + "sliced": "1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "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.5.1", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.5.1.tgz", + "integrity": "sha512-H8OVQ+QEz82sch4wbODFOz+3YQ61FYz/z3eJ5pIdbMEaUzDqA268Wd+Vt4Paw9TJfvDgVKaayC0gBzMIw2jhsg==" + }, + "mquery": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.0.tgz", + "integrity": "sha512-qPJcdK/yqcbQiKoemAt62Y0BAc0fTEKo1IThodBD+O5meQRJT/2HSe5QpBNwaa4CjskoGrYWsEyjkqgiE0qjhg==", + "requires": { + "bluebird": "3.5.1", + "debug": "3.1.0", + "regexp-clone": "0.0.1", + "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" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -266,44 +476,59 @@ "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" }, "raw-body": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", - "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", "requires": { "bytes": "3.0.0", - "http-errors": "1.6.2", - "iconv-lite": "0.4.19", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", "unpipe": "1.0.0" - }, - "dependencies": { - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" - }, - "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", - "requires": { - "depd": "1.1.1", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": ">= 1.3.1 < 2" - } - }, - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" - } } }, + "regexp-clone": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz", + "integrity": "sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk=" + }, + "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.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "saslprep": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.2.tgz", + "integrity": "sha512-4cDsYuAjXssUSjxHKRe4DTZC0agDwsCqcMqtJAQPzC74nJ7LfAJflAtC1Zed5hMzEQKj82d3tuzqdGNRsLJ4Gw==", + "optional": true, + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" + }, "send": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", @@ -340,6 +565,20 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" }, + "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.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", diff --git a/package.json b/package.json index d8b3e0d..9931b4b 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,8 @@ }, "homepage": "https://github.com/pcIST/API_Development#readme", "dependencies": { - "express": "^4.16.3" + "body-parser": "^1.18.3", + "express": "^4.16.3", + "mongoose": "^5.3.4" } } From 7dd2d35cdba79033fba805fe0a9afbcc36923622 Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Tue, 23 Oct 2018 01:00:51 +0600 Subject: [PATCH 20/39] test product create route --- router/product.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/router/product.js b/router/product.js index 983ed72..eaf1c50 100644 --- a/router/product.js +++ b/router/product.js @@ -17,4 +17,12 @@ product_router.get('/lobon', (req, res) => { res.send('ayodin mukto lobon 10 taka') }) +product_router.post('/create', (req, res) => { + console.log("the size is: ") + console.log(req.body.size) + + console.log("the type of size is:", typeof req.body.size) + res.end() +}) + module.exports = product_router \ No newline at end of file From 92cfd94d4d0d3014defb121be1165bf702d47f46 Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Tue, 23 Oct 2018 01:01:38 +0600 Subject: [PATCH 21/39] fixed request body parsing issue --- index.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/index.js b/index.js index d8c23ea..9edb32b 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,11 @@ const express = require('express') const app = express() +const bodyParser = require('body-parser') const port = 3001 +// Using body-parser npm package to parse request body +app.use(bodyParser.json()) + const profile_router = require('./router/site') const product_router = require('./router/product') From 90966a87e6fe988fec2d3acefe5664e8d8d6a08b Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Tue, 23 Oct 2018 01:02:01 +0600 Subject: [PATCH 22/39] connect to remote MongoDB with mongoose --- index.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/index.js b/index.js index 9edb32b..49a0ecf 100644 --- a/index.js +++ b/index.js @@ -1,8 +1,19 @@ const express = require('express') const app = express() const bodyParser = require('body-parser') +const mongoose = require('mongoose') const port = 3001 +// connect mongoDB +// mongodb://:@:/ +const dbuser = "pcist" +const password = "telbechbo00" +const dbhost = "ds237363.mlab.com" +const dbport = 37363 +const dbname = "pcist-shop" + +mongoose.connect(`mongodb://${dbuser}:${password}@${dbhost}:${dbport}/${dbname}`) + // Using body-parser npm package to parse request body app.use(bodyParser.json()) From aedb063128c059624180bf49c375f845ae58af8a Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Tue, 23 Oct 2018 01:02:14 +0600 Subject: [PATCH 23/39] Added sample model and schema --- model/product.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 model/product.js diff --git a/model/product.js b/model/product.js new file mode 100644 index 0000000..25e1fe1 --- /dev/null +++ b/model/product.js @@ -0,0 +1,17 @@ +const mongoose = require('mongoose') +const prodSchema = new mongoose.schema({ + "name": String, + "name": {type: String, require: true}, + "price": {type: Number, min:1, max: 1000}, + "brand": String, + "quantity": Number, + "size": Number, + "unit": String, + "color": String, + "created_at": {type: Date, default: new Date()}, + "expired_date": Date, + "license": String, + "smell": String, +}) + +const prodModel = mongoose.model('Product', prodSchema) From a3da1dbccfd02d5b26924bb647251f5f8e8d2593 Mon Sep 17 00:00:00 2001 From: "MD. Ariful Islam" <41154962+arif-btkrm@users.noreply.github.com> Date: Tue, 23 Oct 2018 21:17:23 +0600 Subject: [PATCH 24/39] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 37b1c33..1db3790 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,5 @@ This project is gonna be awesome! * Redwanuzzaman | CSE-1692 * Rezaul Karim Shaon | CSE-1532 * Russel Murad | CSE-1523 +* MD. Ariful Islam | CSE-1317 * Rezaul Alam Oni | CSE-[] // where is your roll number man? From 0ce65694ad3f08541f8b4b08ef60c23de24cf050 Mon Sep 17 00:00:00 2001 From: arif-btkrm Date: Thu, 1 Nov 2018 01:31:47 +0600 Subject: [PATCH 25/39] Inserting successfully --- model/product.js | 13 ++++- package-lock.json | 122 +++++++++++++++++++++++----------------------- router/product.js | 28 +++++++++-- 3 files changed, 97 insertions(+), 66 deletions(-) diff --git a/model/product.js b/model/product.js index 25e1fe1..83d70ab 100644 --- a/model/product.js +++ b/model/product.js @@ -1,6 +1,5 @@ const mongoose = require('mongoose') -const prodSchema = new mongoose.schema({ - "name": String, +const prodSchema = new mongoose.Schema({ "name": {type: String, require: true}, "price": {type: Number, min:1, max: 1000}, "brand": String, @@ -15,3 +14,13 @@ const prodSchema = new mongoose.schema({ }) const prodModel = mongoose.model('Product', prodSchema) + +module.exports = prodModel; + + + + +//const Cat = mongoose.model('Cat', { name: String }); + +//const kitty = new Cat({ name: 'Zildjian' }); +//kitty.save().then(() => console.log('meow')); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 08c9201..313edbf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "~2.1.18", + "mime-types": "2.1.20", "negotiator": "0.6.1" } }, @@ -23,7 +23,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "requires": { - "lodash": "^4.17.10" + "lodash": "4.17.11" } }, "bluebird": { @@ -37,15 +37,15 @@ "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", "requires": { "bytes": "3.0.0", - "content-type": "~1.0.4", + "content-type": "1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "~1.6.3", + "depd": "1.1.2", + "http-errors": "1.6.3", "iconv-lite": "0.4.23", - "on-finished": "~2.3.0", + "on-finished": "2.3.0", "qs": "6.5.2", "raw-body": "2.3.3", - "type-is": "~1.6.16" + "type-is": "1.6.16" }, "dependencies": { "qs": { @@ -128,36 +128,36 @@ "resolved": "http://registry.npmjs.org/express/-/express-4.16.3.tgz", "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "requires": { - "accepts": "~1.3.5", + "accepts": "1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "~1.0.4", + "content-type": "1.0.4", "cookie": "0.3.1", "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", + "depd": "1.1.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.3", + "proxy-addr": "2.0.4", "qs": "6.5.1", - "range-parser": "~1.2.0", + "range-parser": "1.2.0", "safe-buffer": "5.1.1", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "~1.4.0", - "type-is": "~1.6.16", + "statuses": "1.4.0", + "type-is": "1.6.16", "utils-merge": "1.0.1", - "vary": "~1.1.2" + "vary": "1.1.2" }, "dependencies": { "body-parser": { @@ -166,15 +166,15 @@ "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", "requires": { "bytes": "3.0.0", - "content-type": "~1.0.4", + "content-type": "1.0.4", "debug": "2.6.9", - "depd": "~1.1.1", - "http-errors": "~1.6.2", + "depd": "1.1.2", + "http-errors": "1.6.3", "iconv-lite": "0.4.19", - "on-finished": "~2.3.0", + "on-finished": "2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "~1.6.15" + "type-is": "1.6.16" } }, "iconv-lite": { @@ -206,7 +206,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": ">= 1.3.1 < 2" + "statuses": "1.4.0" } }, "setprototypeof": { @@ -224,12 +224,12 @@ "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "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", - "unpipe": "~1.0.0" + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.4.0", + "unpipe": "1.0.0" } }, "forwarded": { @@ -247,10 +247,10 @@ "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "requires": { - "depd": "~1.1.2", + "depd": "1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "statuses": "1.4.0" } }, "iconv-lite": { @@ -258,7 +258,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "inherits": { @@ -322,7 +322,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", "requires": { - "mime-db": "~1.36.0" + "mime-db": "1.36.0" } }, "mongodb": { @@ -331,7 +331,7 @@ "integrity": "sha512-E5QJuXQoMlT7KyCYqNNMfAkhfQD79AT4F8Xd+6x37OX+8BL17GyXyWvfm6wuyx4wnzCCPoCSLeMeUN2S7dU9yw==", "requires": { "mongodb-core": "3.1.5", - "safe-buffer": "^5.1.2" + "safe-buffer": "5.1.2" }, "dependencies": { "safe-buffer": { @@ -346,10 +346,10 @@ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.5.tgz", "integrity": "sha512-emT/tM4ZBinqd6RZok+EzDdtN4LjYJIckv71qQVOEFmvXgT5cperZegVmTgox/1cx4XQu6LJ5ZuIwipP/eKdQg==", "requires": { - "bson": "^1.1.0", - "require_optional": "^1.0.1", - "safe-buffer": "^5.1.2", - "saslprep": "^1.0.0" + "bson": "1.1.0", + "require_optional": "1.0.1", + "safe-buffer": "5.1.2", + "saslprep": "1.0.2" }, "dependencies": { "bson": { @@ -370,7 +370,7 @@ "integrity": "sha512-DIUWOyYgZv2zGi/BoFEaFiaCVuDonnzGhW3cnc3JFjBScYn6z24tS2j3VB0dtMoX8FFjxmmMVnlmHPEIbV4PKA==", "requires": { "async": "2.6.1", - "bson": "~1.0.5", + "bson": "1.0.9", "kareem": "2.3.0", "lodash.get": "4.4.2", "mongodb": "3.1.6", @@ -461,7 +461,7 @@ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", "requires": { - "forwarded": "~0.1.2", + "forwarded": "0.1.2", "ipaddr.js": "1.8.0" } }, @@ -496,8 +496,8 @@ "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": "2.0.0", + "semver": "5.6.0" } }, "resolve-from": { @@ -521,7 +521,7 @@ "integrity": "sha512-4cDsYuAjXssUSjxHKRe4DTZC0agDwsCqcMqtJAQPzC74nJ7LfAJflAtC1Zed5hMzEQKj82d3tuzqdGNRsLJ4Gw==", "optional": true, "requires": { - "sparse-bitfield": "^3.0.3" + "sparse-bitfield": "3.0.3" } }, "semver": { @@ -535,18 +535,18 @@ "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", + "depd": "1.1.2", + "destroy": "1.0.4", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", "fresh": "0.5.2", - "http-errors": "~1.6.2", + "http-errors": "1.6.3", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.4.0" } }, "serve-static": { @@ -554,9 +554,9 @@ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "parseurl": "1.3.2", "send": "0.16.2" } }, @@ -576,7 +576,7 @@ "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", "optional": true, "requires": { - "memory-pager": "^1.0.2" + "memory-pager": "1.1.0" } }, "statuses": { @@ -590,7 +590,7 @@ "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", "requires": { "media-typer": "0.3.0", - "mime-types": "~2.1.18" + "mime-types": "2.1.20" } }, "unpipe": { diff --git a/router/product.js b/router/product.js index eaf1c50..fc5d2f2 100644 --- a/router/product.js +++ b/router/product.js @@ -1,4 +1,5 @@ const express = require('express') +const productModel = require('./../model/product') const product_router = express.Router() product_router.get('/', (req, res) => { @@ -18,10 +19,31 @@ product_router.get('/lobon', (req, res) => { }) product_router.post('/create', (req, res) => { - console.log("the size is: ") - console.log(req.body.size) - console.log("the type of size is:", typeof req.body.size) + const item = new productModel({ + name: req.body.name, + price: req.body.price, + brand: req.body.brand, + quantity: req.body.quantity, + size: req.body.size, + unit: req.body.unit, + color: req.body.color, + created_at: req.body.created_at, + expired_date:req.body.expired_date, + license: req.body.license, + smell: req.body.smell, + }); + item.save((err)=>{ + if(err){ + return handleError(err); + } + console.log("Item Saved Successfully :) "); + }); + + //console.log("the size is: ") + //console.log(req.body.size) + + //console.log("the type of size is:", typeof req.body.size) res.end() }) From fbc414059caa0cbf7045fedaff2b12d78e2306f0 Mon Sep 17 00:00:00 2001 From: arif-btkrm Date: Thu, 1 Nov 2018 01:41:20 +0600 Subject: [PATCH 26/39] Data inserting without Validation --- model/product.js | 8 -------- router/product.js | 22 +++++++++++----------- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/model/product.js b/model/product.js index 83d70ab..d6b0e10 100644 --- a/model/product.js +++ b/model/product.js @@ -16,11 +16,3 @@ const prodSchema = new mongoose.Schema({ const prodModel = mongoose.model('Product', prodSchema) module.exports = prodModel; - - - - -//const Cat = mongoose.model('Cat', { name: String }); - -//const kitty = new Cat({ name: 'Zildjian' }); -//kitty.save().then(() => console.log('meow')); \ No newline at end of file diff --git a/router/product.js b/router/product.js index fc5d2f2..9568832 100644 --- a/router/product.js +++ b/router/product.js @@ -21,17 +21,17 @@ product_router.get('/lobon', (req, res) => { product_router.post('/create', (req, res) => { const item = new productModel({ - name: req.body.name, - price: req.body.price, - brand: req.body.brand, - quantity: req.body.quantity, - size: req.body.size, - unit: req.body.unit, - color: req.body.color, - created_at: req.body.created_at, - expired_date:req.body.expired_date, - license: req.body.license, - smell: req.body.smell, + name : req.body.name, + price : req.body.price, + brand : req.body.brand, + quantity : req.body.quantity, + size : req.body.size, + unit : req.body.unit, + color : req.body.color, + created_at : req.body.created_at, + expired_date :req.body.expired_date, + license : req.body.license, + smell : req.body.smell, }); item.save((err)=>{ if(err){ From d7179cfdd453ebef02d2fe5d60c0e2eefc4a235f Mon Sep 17 00:00:00 2001 From: arif-btkrm Date: Thu, 1 Nov 2018 02:05:36 +0600 Subject: [PATCH 27/39] Data Inserting Successfully with Validation But Correct Status Code is not providing --- model/product.js | 2 +- router/product.js | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/model/product.js b/model/product.js index d6b0e10..c90304d 100644 --- a/model/product.js +++ b/model/product.js @@ -1,6 +1,6 @@ const mongoose = require('mongoose') const prodSchema = new mongoose.Schema({ - "name": {type: String, require: true}, + "name": {type: String, required: true}, "price": {type: Number, min:1, max: 1000}, "brand": String, "quantity": Number, diff --git a/router/product.js b/router/product.js index 9568832..e9b8696 100644 --- a/router/product.js +++ b/router/product.js @@ -34,11 +34,15 @@ product_router.post('/create', (req, res) => { smell : req.body.smell, }); item.save((err)=>{ - if(err){ - return handleError(err); + if(!err){ + console.log("Item Saved Successfully :) "); + } + else{ + console.error(err); } - console.log("Item Saved Successfully :) "); }); + + //res.send() //console.log("the size is: ") //console.log(req.body.size) From 61aa96be5fe7e5fce12e72a2c054e9a4b2c34ad7 Mon Sep 17 00:00:00 2001 From: arif-btkrm Date: Thu, 1 Nov 2018 20:19:19 +0600 Subject: [PATCH 28/39] Inserting and Fatching Data Successfully with the spefic URL in JSON format --- router/product.js | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/router/product.js b/router/product.js index e9b8696..b476dc7 100644 --- a/router/product.js +++ b/router/product.js @@ -3,19 +3,47 @@ const productModel = require('./../model/product') const product_router = express.Router() product_router.get('/', (req, res) => { - res.send('amader product list ekhane dekha jabe') + const item = productModel.find({},(err, result)=>{ + if(err){ + throw err; + } + else if(result){ + res.json(result); + } + }); }) product_router.get('/tel', (req, res) => { - res.send('tel er dam ajke 100 taka') + const item = productModel.find({name : "tel"},(err, result)=>{ + if(err){ + throw err; + } + else if(result){ + res.json(result); + } + }); }) product_router.get('/saban', (req, res) => { - res.send("saban 1 pc 25 taka") + const item = productModel.find({name : "saban"},(err, result)=>{ + if(err){ + throw err; + } + else if(result){ + res.json(result); + } + }); }) product_router.get('/lobon', (req, res) => { - res.send('ayodin mukto lobon 10 taka') + const item = productModel.find({name : "lobon"},(err, result)=>{ + if(err){ + throw err; + } + else if(result){ + res.json(result); + } + }); }) product_router.post('/create', (req, res) => { From 54be32eb4f3dd5a8a16f31ac557e473ca2e5724b Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Mon, 5 Nov 2018 16:31:11 +0600 Subject: [PATCH 29/39] fixed schema issue --- model/product.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/model/product.js b/model/product.js index 25e1fe1..af29751 100644 --- a/model/product.js +++ b/model/product.js @@ -1,7 +1,6 @@ const mongoose = require('mongoose') -const prodSchema = new mongoose.schema({ - "name": String, - "name": {type: String, require: true}, +const prodSchema = new mongoose.Schema({ + "name": {type: String, required: true}, "price": {type: Number, min:1, max: 1000}, "brand": String, "quantity": Number, From 7fcd9f441d1447ca8551d55171fd271036e811af Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Mon, 5 Nov 2018 16:31:18 +0600 Subject: [PATCH 30/39] exporting models --- model/product.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/model/product.js b/model/product.js index af29751..c345157 100644 --- a/model/product.js +++ b/model/product.js @@ -14,3 +14,5 @@ const prodSchema = new mongoose.Schema({ }) const prodModel = mongoose.model('Product', prodSchema) + +module.exports = prodModel From e197e5892bdd4efb2f7cc0bc3d62e770db17a1c0 Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Mon, 5 Nov 2018 16:31:43 +0600 Subject: [PATCH 31/39] create endoint is now ready --- router/product.js | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/router/product.js b/router/product.js index eaf1c50..1cb5798 100644 --- a/router/product.js +++ b/router/product.js @@ -1,4 +1,5 @@ const express = require('express') +const prodModel = require('../model/product') const product_router = express.Router() product_router.get('/', (req, res) => { @@ -17,12 +18,33 @@ product_router.get('/lobon', (req, res) => { res.send('ayodin mukto lobon 10 taka') }) -product_router.post('/create', (req, res) => { - console.log("the size is: ") - console.log(req.body.size) +product_router.post('/create', (req, res) => { + let item = new prodModel({ + "name": req.body.name, + "price": req.body.price, + "brand": req.body.brand, + "quantity": req.body.quantity, + "size": req.body.size, + "unit": req.body.unit, + "color": req.body.color, + "expired_date": req.body.expired_date, + "license": req.body.license, + "smell": req.body.smell + }); - console.log("the type of size is:", typeof req.body.size) - res.end() + // error object definition + let client_err = {} + item.save( (err) => { + if (err) client_err = err + }) + + if (client_err) { + return res.send(422, { + "message": "tumi kichu ekta vul korso vai/bon", + "error": client_err + }) + } + return res.send(201, {"message": "item jog hoyeche, apnake dhonnobad!"}) }) module.exports = product_router \ No newline at end of file From 1cdca39f6d4cbe73f6196b523a822a63e5ce5f8b Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Sat, 17 Nov 2018 23:56:30 +0600 Subject: [PATCH 32/39] tweaked get endpoints for product some dynamic query params --- router/product.js | 46 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/router/product.js b/router/product.js index 0f1dafa..983294a 100644 --- a/router/product.js +++ b/router/product.js @@ -24,15 +24,45 @@ product_router.get('/tel', (req, res) => { }); }) +product_router.get('/teilla', (req, res) => { + const item = productModel.find({name : "teilla"},(err, result)=>{ + if(err || result.length == 0){ + res.send(404, {"message" : "pai nai", "error": err}) + // throw err; + } + else if(result){ + res.end("result paisi"); + } + }); +}) + product_router.get('/saban', (req, res) => { - const item = productModel.find({name : "saban"},(err, result)=>{ - if(err){ - throw err; - } - else if(result){ - res.json(result); - } - }); + const price_value = req.query.price + // console.log(req.query.price) + + final_res = {} + const item = productModel.findOne({name : "saban", mullo: price_value},(err, result)=>{ + if(err){ + throw err; + } + else if(result){ + final_res = result + } + + if (final_res) { + return res.send(200, { + "result" : { + "name": final_res.name, + "price": final_res.price, + "brand": final_res.brand, + "color": final_res.color, + "smell": final_res.smell, + } + }); + } else { + return res.send(404, {"message": "nai, sorry for waiting"}) + } + }); }) product_router.get('/lobon', (req, res) => { From 62af913e6997497551224c37c7d92808076010b0 Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Sun, 18 Nov 2018 00:04:37 +0600 Subject: [PATCH 33/39] lint --- router/product.js | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/router/product.js b/router/product.js index 983294a..074b814 100644 --- a/router/product.js +++ b/router/product.js @@ -10,7 +10,7 @@ product_router.get('/', (req, res) => { else if(result){ res.json(result); } - }); + }); }) product_router.get('/tel', (req, res) => { @@ -21,7 +21,7 @@ product_router.get('/tel', (req, res) => { else if(result){ res.json(result); } - }); + }); }) product_router.get('/teilla', (req, res) => { @@ -42,10 +42,10 @@ product_router.get('/saban', (req, res) => { final_res = {} const item = productModel.findOne({name : "saban", mullo: price_value},(err, result)=>{ - if(err){ + if (err) { throw err; } - else if(result){ + else if (result) { final_res = result } @@ -66,17 +66,17 @@ product_router.get('/saban', (req, res) => { }) product_router.get('/lobon', (req, res) => { - const item = productModel.find({name : "lobon"},(err, result)=>{ - if(err){ + const item = productModel.find({name : "lobon"}, (err, result) => { + if (err) { throw err; } - else if(result){ + else if (result) { res.json(result); } - }); + }); }) -product_router.post('/create', (req, res) => { +product_router.post('/create', (req, res) => { let item = new productModel({ "name": req.body.name, "price": req.body.price, @@ -89,13 +89,13 @@ product_router.post('/create', (req, res) => { "license": req.body.license, "smell": req.body.smell }); - + // error object definition let client_err = {} item.save( (err) => { if (err) client_err = err }) - + if (client_err) { return res.send(422, { "message": "tumi kichu ekta vul korso vai/bon", From eaf3f6eca174bc5a13a4f6dd757591825cff4bd3 Mon Sep 17 00:00:00 2001 From: Akram Khan Date: Sun, 18 Nov 2018 10:57:21 +0600 Subject: [PATCH 34/39] ignoring .idea folder --- .gitignore | 1 + package-lock.json | 122 +++++++++++++++++++++++----------------------- 2 files changed, 62 insertions(+), 61 deletions(-) diff --git a/.gitignore b/.gitignore index 3c3629e..34977ee 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ node_modules +.idea \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 313edbf..08c9201 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "2.1.20", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -23,7 +23,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "requires": { - "lodash": "4.17.11" + "lodash": "^4.17.10" } }, "bluebird": { @@ -37,15 +37,15 @@ "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.2", + "http-errors": "~1.6.3", "iconv-lite": "0.4.23", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.2", "raw-body": "2.3.3", - "type-is": "1.6.16" + "type-is": "~1.6.16" }, "dependencies": { "qs": { @@ -128,36 +128,36 @@ "resolved": "http://registry.npmjs.org/express/-/express-4.16.3.tgz", "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.3.1", "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", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.4", + "proxy-addr": "~2.0.3", "qs": "6.5.1", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.1", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", + "statuses": "~1.4.0", + "type-is": "~1.6.16", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "body-parser": { @@ -166,15 +166,15 @@ "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.1", + "http-errors": "~1.6.2", "iconv-lite": "0.4.19", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.16" + "type-is": "~1.6.15" } }, "iconv-lite": { @@ -206,7 +206,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.4.0" + "statuses": ">= 1.3.1 < 2" } }, "setprototypeof": { @@ -224,12 +224,12 @@ "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "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", - "unpipe": "1.0.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" } }, "forwarded": { @@ -247,10 +247,10 @@ "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": "1.4.0" + "statuses": ">= 1.4.0 < 2" } }, "iconv-lite": { @@ -258,7 +258,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "inherits": { @@ -322,7 +322,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", "requires": { - "mime-db": "1.36.0" + "mime-db": "~1.36.0" } }, "mongodb": { @@ -331,7 +331,7 @@ "integrity": "sha512-E5QJuXQoMlT7KyCYqNNMfAkhfQD79AT4F8Xd+6x37OX+8BL17GyXyWvfm6wuyx4wnzCCPoCSLeMeUN2S7dU9yw==", "requires": { "mongodb-core": "3.1.5", - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.2" }, "dependencies": { "safe-buffer": { @@ -346,10 +346,10 @@ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.5.tgz", "integrity": "sha512-emT/tM4ZBinqd6RZok+EzDdtN4LjYJIckv71qQVOEFmvXgT5cperZegVmTgox/1cx4XQu6LJ5ZuIwipP/eKdQg==", "requires": { - "bson": "1.1.0", - "require_optional": "1.0.1", - "safe-buffer": "5.1.2", - "saslprep": "1.0.2" + "bson": "^1.1.0", + "require_optional": "^1.0.1", + "safe-buffer": "^5.1.2", + "saslprep": "^1.0.0" }, "dependencies": { "bson": { @@ -370,7 +370,7 @@ "integrity": "sha512-DIUWOyYgZv2zGi/BoFEaFiaCVuDonnzGhW3cnc3JFjBScYn6z24tS2j3VB0dtMoX8FFjxmmMVnlmHPEIbV4PKA==", "requires": { "async": "2.6.1", - "bson": "1.0.9", + "bson": "~1.0.5", "kareem": "2.3.0", "lodash.get": "4.4.2", "mongodb": "3.1.6", @@ -461,7 +461,7 @@ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.8.0" } }, @@ -496,8 +496,8 @@ "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.6.0" + "resolve-from": "^2.0.0", + "semver": "^5.1.0" } }, "resolve-from": { @@ -521,7 +521,7 @@ "integrity": "sha512-4cDsYuAjXssUSjxHKRe4DTZC0agDwsCqcMqtJAQPzC74nJ7LfAJflAtC1Zed5hMzEQKj82d3tuzqdGNRsLJ4Gw==", "optional": true, "requires": { - "sparse-bitfield": "3.0.3" + "sparse-bitfield": "^3.0.3" } }, "semver": { @@ -535,18 +535,18 @@ "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.3", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" } }, "serve-static": { @@ -554,9 +554,9 @@ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.2" } }, @@ -576,7 +576,7 @@ "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", "optional": true, "requires": { - "memory-pager": "1.1.0" + "memory-pager": "^1.0.2" } }, "statuses": { @@ -590,7 +590,7 @@ "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.20" + "mime-types": "~2.1.18" } }, "unpipe": { From 2f91050d5403ee18efee5d73020c865ffb4951c7 Mon Sep 17 00:00:00 2001 From: Akram Khan Date: Sun, 18 Nov 2018 12:24:39 +0600 Subject: [PATCH 35/39] dynamic product searching feature added --- router/product.js | 91 +++++++++++++++++++---------------------------- 1 file changed, 36 insertions(+), 55 deletions(-) diff --git a/router/product.js b/router/product.js index 074b814..fd0d294 100644 --- a/router/product.js +++ b/router/product.js @@ -13,67 +13,48 @@ product_router.get('/', (req, res) => { }); }) -product_router.get('/tel', (req, res) => { - const item = productModel.find({name : "tel"},(err, result)=>{ - if(err){ - throw err; - } - else if(result){ - res.json(result); - } - }); -}) - -product_router.get('/teilla', (req, res) => { - const item = productModel.find({name : "teilla"},(err, result)=>{ - if(err || result.length == 0){ - res.send(404, {"message" : "pai nai", "error": err}) - // throw err; - } - else if(result){ - res.end("result paisi"); - } - }); -}) - -product_router.get('/saban', (req, res) => { - const price_value = req.query.price - // console.log(req.query.price) - - final_res = {} - const item = productModel.findOne({name : "saban", mullo: price_value},(err, result)=>{ +product_router.get('/:name', (req, res) => { + let query = { + name: req.params.name, + } + let q = req.query + if (q.price) { + query.price = q.price + } + if (q.brand) { + query.brand = q.brand + } + if (q.quantity) { + query.quantity = q.quantity + } + if (q.size) { + query.size = q.size + } + if (q.unit) { + query.unit = q.unit + } + if (q.color) { + query.color = q.color + } + productModel.findOne(query, (err, result) => { if (err) { throw err; } else if (result) { - final_res = result + res.json({ + "name": result.name, + "price": result.price, + "brand": result.brand, + "quantity": result.quantity, + "size": result.size, + "unit": result.unit, + "color": result.color, + }) } - - if (final_res) { - return res.send(200, { - "result" : { - "name": final_res.name, - "price": final_res.price, - "brand": final_res.brand, - "color": final_res.color, - "smell": final_res.smell, - } - }); - } else { - return res.send(404, {"message": "nai, sorry for waiting"}) + else { + res.status(404).json({"message": "Sorry, product not found."}) } - }); -}) - -product_router.get('/lobon', (req, res) => { - const item = productModel.find({name : "lobon"}, (err, result) => { - if (err) { - throw err; - } - else if (result) { - res.json(result); - } - }); + }) }) product_router.post('/create', (req, res) => { From b814d791366cba180f6bb04f641ee73ca2f09ae0 Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Sat, 24 Nov 2018 19:09:46 +0600 Subject: [PATCH 36/39] added update and delete method --- router/product.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/router/product.js b/router/product.js index fd0d294..958c363 100644 --- a/router/product.js +++ b/router/product.js @@ -13,6 +13,7 @@ product_router.get('/', (req, res) => { }); }) +// get product product_router.get('/:name', (req, res) => { let query = { name: req.params.name, @@ -57,6 +58,7 @@ product_router.get('/:name', (req, res) => { }) }) +// create product product_router.post('/create', (req, res) => { let item = new productModel({ "name": req.body.name, @@ -86,4 +88,32 @@ product_router.post('/create', (req, res) => { return res.send(201, {"message": "item jog hoyeche, apnake dhonnobad!"}) }) +// update product +product_router.patch('/:product_id', (req, res) => { + const reqBody = req.body + + productModel.updateOne({_id: req.params.product_id}, reqBody, (err, result) => { + if (err) { + return res.send(400, {message: "something went wrong!"}) + } + + if (result) { + return res.send(200, {message: "successfully updated", data: result}) + } + }) +}) + +// delete product +product_router.delete('/:product_id', (req, res) => { + productModel.deleteOne({_id: req.params.product_id}, (err, result) => { + if (err) { + return res.send(400, {message: "something went wrong!"}) + } + + if (result) { + return res.send(204) + } + }) +}) + module.exports = product_router \ No newline at end of file From a77370ac23c2a492be0bfc7adb209fef70fe51c1 Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Sat, 1 Dec 2018 18:33:07 +0600 Subject: [PATCH 37/39] added npm script --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 9931b4b..7b3af11 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "description": "A shop you can get item for free", "main": "index.js", "scripts": { + "start": "node index.js", "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { From f55375d3140fd9f6a0b9b5e2c308381d4610465b Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Sat, 1 Dec 2018 18:45:30 +0600 Subject: [PATCH 38/39] set dynamic PORT --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index 49a0ecf..8973eec 100644 --- a/index.js +++ b/index.js @@ -2,7 +2,7 @@ const express = require('express') const app = express() const bodyParser = require('body-parser') const mongoose = require('mongoose') -const port = 3001 +const port = process.env.PORT || 80 // connect mongoDB // mongodb://:@:/ From 57193a88b77122deb928b36ef7c72d8087ccc298 Mon Sep 17 00:00:00 2001 From: Anisuzzaman Khan Date: Sat, 1 Dec 2018 19:47:23 +0600 Subject: [PATCH 39/39] fixed critical save issue related to async task --- router/product.js | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/router/product.js b/router/product.js index 958c363..0fc98c5 100644 --- a/router/product.js +++ b/router/product.js @@ -74,18 +74,16 @@ product_router.post('/create', (req, res) => { }); // error object definition - let client_err = {} item.save( (err) => { - if (err) client_err = err + if (err) { + console.log(client_err) + return res.send(422, { + "message": "tumi kichu ekta vul korso vai/bon", + "error": client_err + }) + } + return res.send(201, {"message": "item jog hoyeche, apnake dhonnobad!"}) }) - - if (client_err) { - return res.send(422, { - "message": "tumi kichu ekta vul korso vai/bon", - "error": client_err - }) - } - return res.send(201, {"message": "item jog hoyeche, apnake dhonnobad!"}) }) // update product