├── README.md ├── login ├── .gitignore ├── app.js ├── models │ └── User.js ├── package-lock.json └── package.json ├── mongodb ├── .gitignore ├── index.js ├── package-lock.json └── package.json ├── mongoose ├── .gitignore ├── index.js ├── models │ ├── User.js │ └── User2.js ├── package-lock.json └── package.json └── node-learn ├── .gitignore ├── express-server.js ├── global.js ├── http-form-submit.js ├── http-form.html ├── http-request.js ├── http-server-files.js ├── http-server-json.js ├── index.html ├── package-lock.json ├── process.js ├── readine.js ├── server.js ├── websocket-client.js ├── websocket-server.js └── websocket.html /README.md: -------------------------------------------------------------------------------- 1 | # Node.js 2 | 3 | ## overview 4 | This repository has many small pieces of node.js codes which is basically small modules. these are pretty simple to use. you can find one of your neddy code above list of folders. after it just download it and use it. they are snippet of node.js based. 5 | 6 | ## contribution 7 | This repository is opened for all of you. just fork it and make a commit. If you build some small project based on node.js then just contribute. we can build a large node.js-snippets repo. let's contribute. 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /login/.gitignore: -------------------------------------------------------------------------------- 1 | # dependencies 2 | /node_modules 3 | 4 | # testing 5 | /coverage 6 | 7 | # production 8 | /build 9 | 10 | # misc 11 | .DS_Store 12 | .env.local 13 | .env.development.local 14 | .env.test.local 15 | .env.production.local 16 | 17 | npm-debug.log* 18 | yarn-debug.log* 19 | yarn-error.log* -------------------------------------------------------------------------------- /login/app.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const app = express(); 3 | const mongoose = require('mongoose'); 4 | const bodyparser = require('body-parser'); 5 | const User = require('./models/User'); 6 | const bcrypt = require('bcryptjs'); 7 | 8 | app.use(bodyparser.json()); 9 | app.use(bodyparser.urlencoded({extended:true})); 10 | 11 | mongoose.Promise = global.Promise; 12 | 13 | mongoose.connect('mongodb://localhost:27017/login', { useNewUrlParser: true , useUnifiedTopology: true },()=>{ 14 | console.log('CONNECTED'); 15 | }); 16 | 17 | app.get('/',(req,res)=>{ 18 | res.send('ROOT'); 19 | }); 20 | 21 | app.post('/register',(req,res)=>{ 22 | const newUser = new User(); 23 | newUser.email = req.body.email; 24 | newUser.password = req.body.password; 25 | 26 | bcrypt.genSalt(10,(err,salt)=>{ 27 | 28 | bcrypt.hash(newUser.password,salt,(err,hash)=>{ 29 | 30 | if(err) return err; 31 | 32 | newUser.password = hash; 33 | 34 | newUser.save().then(savedUser=>{ 35 | res.send('USER SAVED'); 36 | }).catch(err=>{ 37 | res.status(404).send(`user not save because ...${err}`); 38 | }); 39 | }); 40 | }); 41 | }); 42 | 43 | 44 | app.post('/login',(req,res)=>{ 45 | User.findOne({email: req.body.email}).then(user=>{ 46 | if(user){ 47 | bcrypt.compare(req.body.password,user.password,(err,matched)=>{ 48 | if(err) return err; 49 | 50 | if(matched){ 51 | res.send('USER WAS ABLE TO LOGIN'); 52 | }else{ 53 | res.send('USER WAS NOT ABLE TO LOGIN'); 54 | } 55 | }); 56 | } 57 | }); 58 | }); 59 | 60 | app.listen(4111,()=>{ 61 | console.log('listening the port 4111'); 62 | }); -------------------------------------------------------------------------------- /login/models/User.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | const Schema = mongoose.Schema; 3 | 4 | const UserSchema = new Schema ({ 5 | 6 | email: { 7 | type: String, 8 | required: true, 9 | unique: true, 10 | trim:true, 11 | minlength: 3 12 | }, 13 | 14 | password: { 15 | type:String, 16 | required:true, 17 | minlength: 5 18 | } 19 | }); 20 | 21 | module.exports = mongoose.model('users',UserSchema); -------------------------------------------------------------------------------- /login/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "login", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "accepts": { 8 | "version": "1.3.7", 9 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 10 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 11 | "requires": { 12 | "mime-types": "~2.1.24", 13 | "negotiator": "0.6.2" 14 | } 15 | }, 16 | "array-flatten": { 17 | "version": "1.1.1", 18 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 19 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 20 | }, 21 | "bcryptjs": { 22 | "version": "2.4.3", 23 | "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", 24 | "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" 25 | }, 26 | "bl": { 27 | "version": "2.2.1", 28 | "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", 29 | "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", 30 | "requires": { 31 | "readable-stream": "^2.3.5", 32 | "safe-buffer": "^5.1.1" 33 | } 34 | }, 35 | "bluebird": { 36 | "version": "3.5.1", 37 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", 38 | "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" 39 | }, 40 | "body-parser": { 41 | "version": "1.19.0", 42 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 43 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", 44 | "requires": { 45 | "bytes": "3.1.0", 46 | "content-type": "~1.0.4", 47 | "debug": "2.6.9", 48 | "depd": "~1.1.2", 49 | "http-errors": "1.7.2", 50 | "iconv-lite": "0.4.24", 51 | "on-finished": "~2.3.0", 52 | "qs": "6.7.0", 53 | "raw-body": "2.4.0", 54 | "type-is": "~1.6.17" 55 | } 56 | }, 57 | "bson": { 58 | "version": "1.1.4", 59 | "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.4.tgz", 60 | "integrity": "sha512-S/yKGU1syOMzO86+dGpg2qGoDL0zvzcb262G+gqEy6TgP6rt6z6qxSFX/8X6vLC91P7G7C3nLs0+bvDzmvBA3Q==" 61 | }, 62 | "bytes": { 63 | "version": "3.1.0", 64 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 65 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" 66 | }, 67 | "content-disposition": { 68 | "version": "0.5.3", 69 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 70 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 71 | "requires": { 72 | "safe-buffer": "5.1.2" 73 | } 74 | }, 75 | "content-type": { 76 | "version": "1.0.4", 77 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 78 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 79 | }, 80 | "cookie": { 81 | "version": "0.4.0", 82 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 83 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" 84 | }, 85 | "cookie-signature": { 86 | "version": "1.0.6", 87 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 88 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 89 | }, 90 | "core-util-is": { 91 | "version": "1.0.2", 92 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 93 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 94 | }, 95 | "debug": { 96 | "version": "2.6.9", 97 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 98 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 99 | "requires": { 100 | "ms": "2.0.0" 101 | } 102 | }, 103 | "denque": { 104 | "version": "1.4.1", 105 | "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz", 106 | "integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==" 107 | }, 108 | "depd": { 109 | "version": "1.1.2", 110 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 111 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 112 | }, 113 | "destroy": { 114 | "version": "1.0.4", 115 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 116 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 117 | }, 118 | "ee-first": { 119 | "version": "1.1.1", 120 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 121 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 122 | }, 123 | "encodeurl": { 124 | "version": "1.0.2", 125 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 126 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 127 | }, 128 | "escape-html": { 129 | "version": "1.0.3", 130 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 131 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 132 | }, 133 | "etag": { 134 | "version": "1.8.1", 135 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 136 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 137 | }, 138 | "express": { 139 | "version": "4.17.1", 140 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 141 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", 142 | "requires": { 143 | "accepts": "~1.3.7", 144 | "array-flatten": "1.1.1", 145 | "body-parser": "1.19.0", 146 | "content-disposition": "0.5.3", 147 | "content-type": "~1.0.4", 148 | "cookie": "0.4.0", 149 | "cookie-signature": "1.0.6", 150 | "debug": "2.6.9", 151 | "depd": "~1.1.2", 152 | "encodeurl": "~1.0.2", 153 | "escape-html": "~1.0.3", 154 | "etag": "~1.8.1", 155 | "finalhandler": "~1.1.2", 156 | "fresh": "0.5.2", 157 | "merge-descriptors": "1.0.1", 158 | "methods": "~1.1.2", 159 | "on-finished": "~2.3.0", 160 | "parseurl": "~1.3.3", 161 | "path-to-regexp": "0.1.7", 162 | "proxy-addr": "~2.0.5", 163 | "qs": "6.7.0", 164 | "range-parser": "~1.2.1", 165 | "safe-buffer": "5.1.2", 166 | "send": "0.17.1", 167 | "serve-static": "1.14.1", 168 | "setprototypeof": "1.1.1", 169 | "statuses": "~1.5.0", 170 | "type-is": "~1.6.18", 171 | "utils-merge": "1.0.1", 172 | "vary": "~1.1.2" 173 | } 174 | }, 175 | "finalhandler": { 176 | "version": "1.1.2", 177 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 178 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 179 | "requires": { 180 | "debug": "2.6.9", 181 | "encodeurl": "~1.0.2", 182 | "escape-html": "~1.0.3", 183 | "on-finished": "~2.3.0", 184 | "parseurl": "~1.3.3", 185 | "statuses": "~1.5.0", 186 | "unpipe": "~1.0.0" 187 | } 188 | }, 189 | "forwarded": { 190 | "version": "0.1.2", 191 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", 192 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" 193 | }, 194 | "fresh": { 195 | "version": "0.5.2", 196 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 197 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 198 | }, 199 | "http-errors": { 200 | "version": "1.7.2", 201 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", 202 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", 203 | "requires": { 204 | "depd": "~1.1.2", 205 | "inherits": "2.0.3", 206 | "setprototypeof": "1.1.1", 207 | "statuses": ">= 1.5.0 < 2", 208 | "toidentifier": "1.0.0" 209 | } 210 | }, 211 | "iconv-lite": { 212 | "version": "0.4.24", 213 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 214 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 215 | "requires": { 216 | "safer-buffer": ">= 2.1.2 < 3" 217 | } 218 | }, 219 | "inherits": { 220 | "version": "2.0.3", 221 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 222 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 223 | }, 224 | "ipaddr.js": { 225 | "version": "1.9.1", 226 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 227 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 228 | }, 229 | "isarray": { 230 | "version": "1.0.0", 231 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 232 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 233 | }, 234 | "kareem": { 235 | "version": "2.3.1", 236 | "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", 237 | "integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw==" 238 | }, 239 | "media-typer": { 240 | "version": "0.3.0", 241 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 242 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 243 | }, 244 | "memory-pager": { 245 | "version": "1.5.0", 246 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", 247 | "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", 248 | "optional": true 249 | }, 250 | "merge-descriptors": { 251 | "version": "1.0.1", 252 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 253 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 254 | }, 255 | "methods": { 256 | "version": "1.1.2", 257 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 258 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 259 | }, 260 | "mime": { 261 | "version": "1.6.0", 262 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 263 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 264 | }, 265 | "mime-db": { 266 | "version": "1.44.0", 267 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", 268 | "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" 269 | }, 270 | "mime-types": { 271 | "version": "2.1.27", 272 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", 273 | "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", 274 | "requires": { 275 | "mime-db": "1.44.0" 276 | } 277 | }, 278 | "mongodb": { 279 | "version": "3.5.7", 280 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.7.tgz", 281 | "integrity": "sha512-lMtleRT+vIgY/JhhTn1nyGwnSMmJkJELp+4ZbrjctrnBxuLbj6rmLuJFz8W2xUzUqWmqoyVxJLYuC58ZKpcTYQ==", 282 | "requires": { 283 | "bl": "^2.2.0", 284 | "bson": "^1.1.4", 285 | "denque": "^1.4.1", 286 | "require_optional": "^1.0.1", 287 | "safe-buffer": "^5.1.2", 288 | "saslprep": "^1.0.0" 289 | } 290 | }, 291 | "mongoose": { 292 | "version": "5.9.11", 293 | "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.9.11.tgz", 294 | "integrity": "sha512-xsPquUEBfJQ/ufT7SI4+qWHml1+HTNra5jQS0RsgCXIMMltCWxn3jeugLiPbyFkKZokMZ+tPy5yEDtLZu5gHeg==", 295 | "requires": { 296 | "bson": "^1.1.4", 297 | "kareem": "2.3.1", 298 | "mongodb": "3.5.7", 299 | "mongoose-legacy-pluralize": "1.0.2", 300 | "mpath": "0.7.0", 301 | "mquery": "3.2.2", 302 | "ms": "2.1.2", 303 | "regexp-clone": "1.0.0", 304 | "safe-buffer": "5.1.2", 305 | "sift": "7.0.1", 306 | "sliced": "1.0.1" 307 | }, 308 | "dependencies": { 309 | "ms": { 310 | "version": "2.1.2", 311 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 312 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 313 | } 314 | } 315 | }, 316 | "mongoose-legacy-pluralize": { 317 | "version": "1.0.2", 318 | "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", 319 | "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" 320 | }, 321 | "mpath": { 322 | "version": "0.7.0", 323 | "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.7.0.tgz", 324 | "integrity": "sha512-Aiq04hILxhz1L+f7sjGyn7IxYzWm1zLNNXcfhDtx04kZ2Gk7uvFdgZ8ts1cWa/6d0TQmag2yR8zSGZUmp0tFNg==" 325 | }, 326 | "mquery": { 327 | "version": "3.2.2", 328 | "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.2.tgz", 329 | "integrity": "sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q==", 330 | "requires": { 331 | "bluebird": "3.5.1", 332 | "debug": "3.1.0", 333 | "regexp-clone": "^1.0.0", 334 | "safe-buffer": "5.1.2", 335 | "sliced": "1.0.1" 336 | }, 337 | "dependencies": { 338 | "debug": { 339 | "version": "3.1.0", 340 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 341 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 342 | "requires": { 343 | "ms": "2.0.0" 344 | } 345 | } 346 | } 347 | }, 348 | "ms": { 349 | "version": "2.0.0", 350 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 351 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 352 | }, 353 | "negotiator": { 354 | "version": "0.6.2", 355 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 356 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" 357 | }, 358 | "on-finished": { 359 | "version": "2.3.0", 360 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 361 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 362 | "requires": { 363 | "ee-first": "1.1.1" 364 | } 365 | }, 366 | "parseurl": { 367 | "version": "1.3.3", 368 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 369 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 370 | }, 371 | "path-to-regexp": { 372 | "version": "0.1.7", 373 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 374 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 375 | }, 376 | "process-nextick-args": { 377 | "version": "2.0.1", 378 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 379 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 380 | }, 381 | "proxy-addr": { 382 | "version": "2.0.6", 383 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", 384 | "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", 385 | "requires": { 386 | "forwarded": "~0.1.2", 387 | "ipaddr.js": "1.9.1" 388 | } 389 | }, 390 | "qs": { 391 | "version": "6.7.0", 392 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 393 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" 394 | }, 395 | "range-parser": { 396 | "version": "1.2.1", 397 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 398 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 399 | }, 400 | "raw-body": { 401 | "version": "2.4.0", 402 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 403 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", 404 | "requires": { 405 | "bytes": "3.1.0", 406 | "http-errors": "1.7.2", 407 | "iconv-lite": "0.4.24", 408 | "unpipe": "1.0.0" 409 | } 410 | }, 411 | "readable-stream": { 412 | "version": "2.3.7", 413 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 414 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 415 | "requires": { 416 | "core-util-is": "~1.0.0", 417 | "inherits": "~2.0.3", 418 | "isarray": "~1.0.0", 419 | "process-nextick-args": "~2.0.0", 420 | "safe-buffer": "~5.1.1", 421 | "string_decoder": "~1.1.1", 422 | "util-deprecate": "~1.0.1" 423 | } 424 | }, 425 | "regexp-clone": { 426 | "version": "1.0.0", 427 | "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", 428 | "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" 429 | }, 430 | "require_optional": { 431 | "version": "1.0.1", 432 | "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", 433 | "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", 434 | "requires": { 435 | "resolve-from": "^2.0.0", 436 | "semver": "^5.1.0" 437 | } 438 | }, 439 | "resolve-from": { 440 | "version": "2.0.0", 441 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", 442 | "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" 443 | }, 444 | "safe-buffer": { 445 | "version": "5.1.2", 446 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 447 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 448 | }, 449 | "safer-buffer": { 450 | "version": "2.1.2", 451 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 452 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 453 | }, 454 | "saslprep": { 455 | "version": "1.0.3", 456 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", 457 | "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", 458 | "optional": true, 459 | "requires": { 460 | "sparse-bitfield": "^3.0.3" 461 | } 462 | }, 463 | "semver": { 464 | "version": "5.7.1", 465 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 466 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 467 | }, 468 | "send": { 469 | "version": "0.17.1", 470 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", 471 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", 472 | "requires": { 473 | "debug": "2.6.9", 474 | "depd": "~1.1.2", 475 | "destroy": "~1.0.4", 476 | "encodeurl": "~1.0.2", 477 | "escape-html": "~1.0.3", 478 | "etag": "~1.8.1", 479 | "fresh": "0.5.2", 480 | "http-errors": "~1.7.2", 481 | "mime": "1.6.0", 482 | "ms": "2.1.1", 483 | "on-finished": "~2.3.0", 484 | "range-parser": "~1.2.1", 485 | "statuses": "~1.5.0" 486 | }, 487 | "dependencies": { 488 | "ms": { 489 | "version": "2.1.1", 490 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 491 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 492 | } 493 | } 494 | }, 495 | "serve-static": { 496 | "version": "1.14.1", 497 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 498 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", 499 | "requires": { 500 | "encodeurl": "~1.0.2", 501 | "escape-html": "~1.0.3", 502 | "parseurl": "~1.3.3", 503 | "send": "0.17.1" 504 | } 505 | }, 506 | "setprototypeof": { 507 | "version": "1.1.1", 508 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 509 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 510 | }, 511 | "sift": { 512 | "version": "7.0.1", 513 | "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz", 514 | "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==" 515 | }, 516 | "sliced": { 517 | "version": "1.0.1", 518 | "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", 519 | "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" 520 | }, 521 | "sparse-bitfield": { 522 | "version": "3.0.3", 523 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", 524 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", 525 | "optional": true, 526 | "requires": { 527 | "memory-pager": "^1.0.2" 528 | } 529 | }, 530 | "statuses": { 531 | "version": "1.5.0", 532 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 533 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 534 | }, 535 | "string_decoder": { 536 | "version": "1.1.1", 537 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 538 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 539 | "requires": { 540 | "safe-buffer": "~5.1.0" 541 | } 542 | }, 543 | "toidentifier": { 544 | "version": "1.0.0", 545 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 546 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" 547 | }, 548 | "type-is": { 549 | "version": "1.6.18", 550 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 551 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 552 | "requires": { 553 | "media-typer": "0.3.0", 554 | "mime-types": "~2.1.24" 555 | } 556 | }, 557 | "unpipe": { 558 | "version": "1.0.0", 559 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 560 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 561 | }, 562 | "util-deprecate": { 563 | "version": "1.0.2", 564 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 565 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 566 | }, 567 | "utils-merge": { 568 | "version": "1.0.1", 569 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 570 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 571 | }, 572 | "vary": { 573 | "version": "1.1.2", 574 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 575 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 576 | } 577 | } 578 | } 579 | -------------------------------------------------------------------------------- /login/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "login", 3 | "version": "1.0.0", 4 | "description": "login", 5 | "main": "app.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "harshit bansal", 10 | "license": "ISC", 11 | "dependencies": { 12 | "bcryptjs": "^2.4.3", 13 | "body-parser": "^1.19.0", 14 | "express": "^4.17.1", 15 | "mongoose": "^5.9.11" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /mongodb/.gitignore: -------------------------------------------------------------------------------- 1 | # dependencies 2 | /node_modules 3 | 4 | # testing 5 | /coverage 6 | 7 | # production 8 | /build 9 | 10 | # misc 11 | .DS_Store 12 | .env.local 13 | .env.development.local 14 | .env.test.local 15 | .env.production.local 16 | 17 | npm-debug.log* 18 | yarn-debug.log* 19 | yarn-error.log* -------------------------------------------------------------------------------- /mongodb/index.js: -------------------------------------------------------------------------------- 1 | const {MongoClient, ObjectId} = require('mongodb'); 2 | 3 | MongoClient.connect('mongodb://localhost:27017', function (err, client) { 4 | if (err) throw err 5 | 6 | console.log('CONNECTED'); 7 | 8 | const db = client.db('animals'); 9 | 10 | // INSERTING DATA 11 | 12 | // db.collection('mammals').insertOne({ 13 | // name:'horse' 14 | // }, (err,result)=>{ 15 | 16 | // if (err) return console.log(err); 17 | 18 | // console.log('INSERTED'); 19 | 20 | // }); 21 | 22 | 23 | //FETCHING DATA 24 | 25 | // db.collection('mammals').find().toArray(function (err, result) { 26 | // if (err) throw err 27 | 28 | // console.log(result) 29 | // }); 30 | 31 | 32 | //UPDATE DATA 33 | 34 | // db.collection('mammals').findOneAndUpdate( 35 | // { 36 | // _id: new ObjectId('5eaea8949c5a0e45591e8762') 37 | // }, 38 | // { $set: {name:'fish'} } 39 | 40 | // ).then(result=>{ 41 | // console.log(result); 42 | // }).catch(err=>{ 43 | // console.log(err); 44 | // }); 45 | 46 | 47 | 48 | // DELETE DATA 49 | // db.collection('mammals').findOneAndDelete({ 50 | // _id: new ObjectId('5eaea8949c5a0e45591e8762') 51 | // }).then(result=>{ 52 | // console.log(result); 53 | // }); 54 | 55 | 56 | 57 | 58 | }); 59 | 60 | 61 | 62 | 63 | // const mongoose = require('mongoose'); 64 | 65 | // mongoose.connect('mongodb://localhost:27017/animals'); 66 | // mongoose.connection 67 | // .once('open',()=>console.log('CONNECTED')) 68 | // .on('error',(err)=>{ 69 | // console.log(`could not connect`,err); 70 | // }); -------------------------------------------------------------------------------- /mongodb/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mongodb-learn", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "bl": { 8 | "version": "2.2.1", 9 | "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", 10 | "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", 11 | "requires": { 12 | "readable-stream": "^2.3.5", 13 | "safe-buffer": "^5.1.1" 14 | } 15 | }, 16 | "bluebird": { 17 | "version": "3.5.1", 18 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", 19 | "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" 20 | }, 21 | "bson": { 22 | "version": "1.1.4", 23 | "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.4.tgz", 24 | "integrity": "sha512-S/yKGU1syOMzO86+dGpg2qGoDL0zvzcb262G+gqEy6TgP6rt6z6qxSFX/8X6vLC91P7G7C3nLs0+bvDzmvBA3Q==" 25 | }, 26 | "core-util-is": { 27 | "version": "1.0.2", 28 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 29 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 30 | }, 31 | "debug": { 32 | "version": "3.1.0", 33 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 34 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 35 | "requires": { 36 | "ms": "2.0.0" 37 | }, 38 | "dependencies": { 39 | "ms": { 40 | "version": "2.0.0", 41 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 42 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 43 | } 44 | } 45 | }, 46 | "denque": { 47 | "version": "1.4.1", 48 | "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz", 49 | "integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==" 50 | }, 51 | "inherits": { 52 | "version": "2.0.4", 53 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 54 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 55 | }, 56 | "isarray": { 57 | "version": "1.0.0", 58 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 59 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 60 | }, 61 | "kareem": { 62 | "version": "2.3.1", 63 | "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", 64 | "integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw==" 65 | }, 66 | "memory-pager": { 67 | "version": "1.5.0", 68 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", 69 | "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", 70 | "optional": true 71 | }, 72 | "mongodb": { 73 | "version": "3.5.7", 74 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.7.tgz", 75 | "integrity": "sha512-lMtleRT+vIgY/JhhTn1nyGwnSMmJkJELp+4ZbrjctrnBxuLbj6rmLuJFz8W2xUzUqWmqoyVxJLYuC58ZKpcTYQ==", 76 | "requires": { 77 | "bl": "^2.2.0", 78 | "bson": "^1.1.4", 79 | "denque": "^1.4.1", 80 | "require_optional": "^1.0.1", 81 | "safe-buffer": "^5.1.2", 82 | "saslprep": "^1.0.0" 83 | } 84 | }, 85 | "mongoose": { 86 | "version": "5.9.11", 87 | "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.9.11.tgz", 88 | "integrity": "sha512-xsPquUEBfJQ/ufT7SI4+qWHml1+HTNra5jQS0RsgCXIMMltCWxn3jeugLiPbyFkKZokMZ+tPy5yEDtLZu5gHeg==", 89 | "requires": { 90 | "bson": "^1.1.4", 91 | "kareem": "2.3.1", 92 | "mongodb": "3.5.7", 93 | "mongoose-legacy-pluralize": "1.0.2", 94 | "mpath": "0.7.0", 95 | "mquery": "3.2.2", 96 | "ms": "2.1.2", 97 | "regexp-clone": "1.0.0", 98 | "safe-buffer": "5.1.2", 99 | "sift": "7.0.1", 100 | "sliced": "1.0.1" 101 | }, 102 | "dependencies": { 103 | "safe-buffer": { 104 | "version": "5.1.2", 105 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 106 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 107 | } 108 | } 109 | }, 110 | "mongoose-legacy-pluralize": { 111 | "version": "1.0.2", 112 | "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", 113 | "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" 114 | }, 115 | "mpath": { 116 | "version": "0.7.0", 117 | "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.7.0.tgz", 118 | "integrity": "sha512-Aiq04hILxhz1L+f7sjGyn7IxYzWm1zLNNXcfhDtx04kZ2Gk7uvFdgZ8ts1cWa/6d0TQmag2yR8zSGZUmp0tFNg==" 119 | }, 120 | "mquery": { 121 | "version": "3.2.2", 122 | "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.2.tgz", 123 | "integrity": "sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q==", 124 | "requires": { 125 | "bluebird": "3.5.1", 126 | "debug": "3.1.0", 127 | "regexp-clone": "^1.0.0", 128 | "safe-buffer": "5.1.2", 129 | "sliced": "1.0.1" 130 | }, 131 | "dependencies": { 132 | "safe-buffer": { 133 | "version": "5.1.2", 134 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 135 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 136 | } 137 | } 138 | }, 139 | "ms": { 140 | "version": "2.1.2", 141 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 142 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 143 | }, 144 | "process-nextick-args": { 145 | "version": "2.0.1", 146 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 147 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 148 | }, 149 | "readable-stream": { 150 | "version": "2.3.7", 151 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 152 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 153 | "requires": { 154 | "core-util-is": "~1.0.0", 155 | "inherits": "~2.0.3", 156 | "isarray": "~1.0.0", 157 | "process-nextick-args": "~2.0.0", 158 | "safe-buffer": "~5.1.1", 159 | "string_decoder": "~1.1.1", 160 | "util-deprecate": "~1.0.1" 161 | }, 162 | "dependencies": { 163 | "safe-buffer": { 164 | "version": "5.1.2", 165 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 166 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 167 | } 168 | } 169 | }, 170 | "regexp-clone": { 171 | "version": "1.0.0", 172 | "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", 173 | "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" 174 | }, 175 | "require_optional": { 176 | "version": "1.0.1", 177 | "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", 178 | "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", 179 | "requires": { 180 | "resolve-from": "^2.0.0", 181 | "semver": "^5.1.0" 182 | } 183 | }, 184 | "resolve-from": { 185 | "version": "2.0.0", 186 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", 187 | "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" 188 | }, 189 | "safe-buffer": { 190 | "version": "5.2.0", 191 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", 192 | "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" 193 | }, 194 | "saslprep": { 195 | "version": "1.0.3", 196 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", 197 | "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", 198 | "optional": true, 199 | "requires": { 200 | "sparse-bitfield": "^3.0.3" 201 | } 202 | }, 203 | "semver": { 204 | "version": "5.7.1", 205 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 206 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 207 | }, 208 | "sift": { 209 | "version": "7.0.1", 210 | "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz", 211 | "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==" 212 | }, 213 | "sliced": { 214 | "version": "1.0.1", 215 | "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", 216 | "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" 217 | }, 218 | "sparse-bitfield": { 219 | "version": "3.0.3", 220 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", 221 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", 222 | "optional": true, 223 | "requires": { 224 | "memory-pager": "^1.0.2" 225 | } 226 | }, 227 | "string_decoder": { 228 | "version": "1.1.1", 229 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 230 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 231 | "requires": { 232 | "safe-buffer": "~5.1.0" 233 | }, 234 | "dependencies": { 235 | "safe-buffer": { 236 | "version": "5.1.2", 237 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 238 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 239 | } 240 | } 241 | }, 242 | "util-deprecate": { 243 | "version": "1.0.2", 244 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 245 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 246 | } 247 | } 248 | } 249 | -------------------------------------------------------------------------------- /mongodb/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mongodb-learn", 3 | "version": "1.0.0", 4 | "description": "database stuff", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "harshit", 10 | "license": "ISC", 11 | "dependencies": { 12 | "mongodb": "^3.5.7", 13 | "mongoose": "^5.9.11" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /mongoose/.gitignore: -------------------------------------------------------------------------------- 1 | # dependencies 2 | /node_modules 3 | 4 | # testing 5 | /coverage 6 | 7 | # production 8 | /build 9 | 10 | # misc 11 | .DS_Store 12 | .env.local 13 | .env.development.local 14 | .env.test.local 15 | .env.production.local 16 | 17 | npm-debug.log* 18 | yarn-debug.log* 19 | yarn-error.log* -------------------------------------------------------------------------------- /mongoose/index.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | const User = require('./models/User2'); 3 | const express = require('express'); 4 | const app = express(); 5 | const bodyParser = require('body-parser'); 6 | 7 | app.use(bodyParser.json()); 8 | app.use(bodyParser.urlencoded({extended:true})); 9 | 10 | mongoose.Promise = global.Promise; 11 | 12 | mongoose.connect('mongodb://localhost:27017/animals-2'); 13 | mongoose.connection 14 | .once('open',()=>console.log('CONNECTED')) 15 | .on('error',(err)=>{ 16 | console.log(`could not connect`,err); 17 | }); 18 | 19 | 20 | 21 | app.get('/',(req,res)=>{ 22 | res.send('ROOT'); 23 | }); 24 | 25 | 26 | 27 | app.post('/users',(req,res)=>{ 28 | 29 | const newUser = new User({ 30 | 31 | firstName: req.body.firstName, 32 | lastName: req.body.lastName, 33 | isActive: req.body.isActive 34 | }); 35 | 36 | newUser.save().then(savedUser=>{ 37 | res.send('USER SAVED'); 38 | }).catch(err=>{ 39 | res.status(404).send(`user not save because ...${err}`); 40 | }); 41 | 42 | }); 43 | 44 | app.get('/users',(req,res)=>{ 45 | User.find({}).then(users=>{ 46 | res.send(users); 47 | }); 48 | }); 49 | 50 | app.patch('/users/:id',(req,res)=>{ 51 | const id =req.params.id; 52 | const firstName = req.body.firstName; 53 | 54 | User.findByIdAndUpdate(id, {$set: {firstName:firstName}}, {new:true}) 55 | .then(savedUser=>{ 56 | res.send('USER SAVED BY PATCH AGAIN'); 57 | }); 58 | }); 59 | 60 | app.put('/users/:id',(req,res)=>{ 61 | const id =req.params.id; 62 | const firstName = req.body.firstName; 63 | const lastName = req.body.lastName; 64 | 65 | User.findByIdAndUpdate(id, {$set: {firstName:firstName,lastName:lastName}}, {new:true}) 66 | .then(savedUser=>{ 67 | res.send('USER SAVED BY PUT AGAIN'); 68 | }); 69 | }); 70 | 71 | // app.delete('/users/:id',(req,res)=>{ 72 | // User.findOne({_id:req.params.id}).then(user=>{ 73 | // user.remove().then(userRemoved=>{ 74 | // res.send('user remove'+userRemoved); 75 | // }); 76 | // }); 77 | // }); 78 | 79 | app.delete('/users/:id',(req,res)=>{ 80 | User.findByIdAndRemove({_id:req.params.id}).then(userRemoved=>{ 81 | res.send(`user ${userRemoved.firstName} removed`); 82 | }); 83 | }); 84 | 85 | 86 | const port = 4444 || process.env.PORT; 87 | 88 | app.listen(port,()=>{ 89 | console.log(`listening on ${port}`); 90 | }); -------------------------------------------------------------------------------- /mongoose/models/User.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | 3 | const User=mongoose.model('users',{ 4 | 5 | firstName: { 6 | type:String, 7 | required:true, 8 | minlength:4, 9 | trim:true 10 | }, 11 | 12 | lastName: { 13 | type:String, 14 | required:true, 15 | minlength:4, 16 | trim:true 17 | }, 18 | 19 | isActive: { 20 | type:Number, 21 | default:0 22 | } 23 | 24 | }); 25 | 26 | module.exports = User; -------------------------------------------------------------------------------- /mongoose/models/User2.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | const Schema = mongoose.Schema; 3 | 4 | const UserSchema=new Schema({ 5 | 6 | firstName: { 7 | type:String, 8 | required:true, 9 | minlength:4, 10 | trim:true 11 | }, 12 | 13 | lastName: { 14 | type:String, 15 | required:true, 16 | minlength:4, 17 | trim:true 18 | }, 19 | 20 | isActive: { 21 | type:Number, 22 | default:0 23 | } 24 | 25 | }); 26 | 27 | module.exports = mongoose.model('users',UserSchema); -------------------------------------------------------------------------------- /mongoose/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mongoose-learn", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "accepts": { 8 | "version": "1.3.7", 9 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 10 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 11 | "requires": { 12 | "mime-types": "~2.1.24", 13 | "negotiator": "0.6.2" 14 | } 15 | }, 16 | "array-flatten": { 17 | "version": "1.1.1", 18 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 19 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 20 | }, 21 | "bl": { 22 | "version": "2.2.1", 23 | "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", 24 | "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", 25 | "requires": { 26 | "readable-stream": "^2.3.5", 27 | "safe-buffer": "^5.1.1" 28 | } 29 | }, 30 | "bluebird": { 31 | "version": "3.5.1", 32 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", 33 | "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" 34 | }, 35 | "body-parser": { 36 | "version": "1.19.0", 37 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 38 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", 39 | "requires": { 40 | "bytes": "3.1.0", 41 | "content-type": "~1.0.4", 42 | "debug": "2.6.9", 43 | "depd": "~1.1.2", 44 | "http-errors": "1.7.2", 45 | "iconv-lite": "0.4.24", 46 | "on-finished": "~2.3.0", 47 | "qs": "6.7.0", 48 | "raw-body": "2.4.0", 49 | "type-is": "~1.6.17" 50 | }, 51 | "dependencies": { 52 | "debug": { 53 | "version": "2.6.9", 54 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 55 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 56 | "requires": { 57 | "ms": "2.0.0" 58 | } 59 | }, 60 | "ms": { 61 | "version": "2.0.0", 62 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 63 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 64 | } 65 | } 66 | }, 67 | "bson": { 68 | "version": "1.1.4", 69 | "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.4.tgz", 70 | "integrity": "sha512-S/yKGU1syOMzO86+dGpg2qGoDL0zvzcb262G+gqEy6TgP6rt6z6qxSFX/8X6vLC91P7G7C3nLs0+bvDzmvBA3Q==" 71 | }, 72 | "bytes": { 73 | "version": "3.1.0", 74 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 75 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" 76 | }, 77 | "content-disposition": { 78 | "version": "0.5.3", 79 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 80 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 81 | "requires": { 82 | "safe-buffer": "5.1.2" 83 | }, 84 | "dependencies": { 85 | "safe-buffer": { 86 | "version": "5.1.2", 87 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 88 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 89 | } 90 | } 91 | }, 92 | "content-type": { 93 | "version": "1.0.4", 94 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 95 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 96 | }, 97 | "cookie": { 98 | "version": "0.4.0", 99 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 100 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" 101 | }, 102 | "cookie-signature": { 103 | "version": "1.0.6", 104 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 105 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 106 | }, 107 | "core-util-is": { 108 | "version": "1.0.2", 109 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 110 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 111 | }, 112 | "debug": { 113 | "version": "3.1.0", 114 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 115 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 116 | "requires": { 117 | "ms": "2.0.0" 118 | }, 119 | "dependencies": { 120 | "ms": { 121 | "version": "2.0.0", 122 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 123 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 124 | } 125 | } 126 | }, 127 | "denque": { 128 | "version": "1.4.1", 129 | "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz", 130 | "integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==" 131 | }, 132 | "depd": { 133 | "version": "1.1.2", 134 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 135 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 136 | }, 137 | "destroy": { 138 | "version": "1.0.4", 139 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 140 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 141 | }, 142 | "ee-first": { 143 | "version": "1.1.1", 144 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 145 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 146 | }, 147 | "encodeurl": { 148 | "version": "1.0.2", 149 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 150 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 151 | }, 152 | "escape-html": { 153 | "version": "1.0.3", 154 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 155 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 156 | }, 157 | "etag": { 158 | "version": "1.8.1", 159 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 160 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 161 | }, 162 | "express": { 163 | "version": "4.17.1", 164 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 165 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", 166 | "requires": { 167 | "accepts": "~1.3.7", 168 | "array-flatten": "1.1.1", 169 | "body-parser": "1.19.0", 170 | "content-disposition": "0.5.3", 171 | "content-type": "~1.0.4", 172 | "cookie": "0.4.0", 173 | "cookie-signature": "1.0.6", 174 | "debug": "2.6.9", 175 | "depd": "~1.1.2", 176 | "encodeurl": "~1.0.2", 177 | "escape-html": "~1.0.3", 178 | "etag": "~1.8.1", 179 | "finalhandler": "~1.1.2", 180 | "fresh": "0.5.2", 181 | "merge-descriptors": "1.0.1", 182 | "methods": "~1.1.2", 183 | "on-finished": "~2.3.0", 184 | "parseurl": "~1.3.3", 185 | "path-to-regexp": "0.1.7", 186 | "proxy-addr": "~2.0.5", 187 | "qs": "6.7.0", 188 | "range-parser": "~1.2.1", 189 | "safe-buffer": "5.1.2", 190 | "send": "0.17.1", 191 | "serve-static": "1.14.1", 192 | "setprototypeof": "1.1.1", 193 | "statuses": "~1.5.0", 194 | "type-is": "~1.6.18", 195 | "utils-merge": "1.0.1", 196 | "vary": "~1.1.2" 197 | }, 198 | "dependencies": { 199 | "debug": { 200 | "version": "2.6.9", 201 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 202 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 203 | "requires": { 204 | "ms": "2.0.0" 205 | } 206 | }, 207 | "ms": { 208 | "version": "2.0.0", 209 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 210 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 211 | }, 212 | "safe-buffer": { 213 | "version": "5.1.2", 214 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 215 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 216 | } 217 | } 218 | }, 219 | "finalhandler": { 220 | "version": "1.1.2", 221 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 222 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 223 | "requires": { 224 | "debug": "2.6.9", 225 | "encodeurl": "~1.0.2", 226 | "escape-html": "~1.0.3", 227 | "on-finished": "~2.3.0", 228 | "parseurl": "~1.3.3", 229 | "statuses": "~1.5.0", 230 | "unpipe": "~1.0.0" 231 | }, 232 | "dependencies": { 233 | "debug": { 234 | "version": "2.6.9", 235 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 236 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 237 | "requires": { 238 | "ms": "2.0.0" 239 | } 240 | }, 241 | "ms": { 242 | "version": "2.0.0", 243 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 244 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 245 | } 246 | } 247 | }, 248 | "forwarded": { 249 | "version": "0.1.2", 250 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", 251 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" 252 | }, 253 | "fresh": { 254 | "version": "0.5.2", 255 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 256 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 257 | }, 258 | "http-errors": { 259 | "version": "1.7.2", 260 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", 261 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", 262 | "requires": { 263 | "depd": "~1.1.2", 264 | "inherits": "2.0.3", 265 | "setprototypeof": "1.1.1", 266 | "statuses": ">= 1.5.0 < 2", 267 | "toidentifier": "1.0.0" 268 | }, 269 | "dependencies": { 270 | "inherits": { 271 | "version": "2.0.3", 272 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 273 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 274 | } 275 | } 276 | }, 277 | "iconv-lite": { 278 | "version": "0.4.24", 279 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 280 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 281 | "requires": { 282 | "safer-buffer": ">= 2.1.2 < 3" 283 | } 284 | }, 285 | "inherits": { 286 | "version": "2.0.4", 287 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 288 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 289 | }, 290 | "ipaddr.js": { 291 | "version": "1.9.1", 292 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 293 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 294 | }, 295 | "isarray": { 296 | "version": "1.0.0", 297 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 298 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 299 | }, 300 | "kareem": { 301 | "version": "2.3.1", 302 | "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", 303 | "integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw==" 304 | }, 305 | "media-typer": { 306 | "version": "0.3.0", 307 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 308 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 309 | }, 310 | "memory-pager": { 311 | "version": "1.5.0", 312 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", 313 | "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", 314 | "optional": true 315 | }, 316 | "merge-descriptors": { 317 | "version": "1.0.1", 318 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 319 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 320 | }, 321 | "methods": { 322 | "version": "1.1.2", 323 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 324 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 325 | }, 326 | "mime": { 327 | "version": "1.6.0", 328 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 329 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 330 | }, 331 | "mime-db": { 332 | "version": "1.44.0", 333 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", 334 | "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" 335 | }, 336 | "mime-types": { 337 | "version": "2.1.27", 338 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", 339 | "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", 340 | "requires": { 341 | "mime-db": "1.44.0" 342 | } 343 | }, 344 | "mongodb": { 345 | "version": "3.5.7", 346 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.7.tgz", 347 | "integrity": "sha512-lMtleRT+vIgY/JhhTn1nyGwnSMmJkJELp+4ZbrjctrnBxuLbj6rmLuJFz8W2xUzUqWmqoyVxJLYuC58ZKpcTYQ==", 348 | "requires": { 349 | "bl": "^2.2.0", 350 | "bson": "^1.1.4", 351 | "denque": "^1.4.1", 352 | "require_optional": "^1.0.1", 353 | "safe-buffer": "^5.1.2", 354 | "saslprep": "^1.0.0" 355 | } 356 | }, 357 | "mongoose": { 358 | "version": "5.9.11", 359 | "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.9.11.tgz", 360 | "integrity": "sha512-xsPquUEBfJQ/ufT7SI4+qWHml1+HTNra5jQS0RsgCXIMMltCWxn3jeugLiPbyFkKZokMZ+tPy5yEDtLZu5gHeg==", 361 | "requires": { 362 | "bson": "^1.1.4", 363 | "kareem": "2.3.1", 364 | "mongodb": "3.5.7", 365 | "mongoose-legacy-pluralize": "1.0.2", 366 | "mpath": "0.7.0", 367 | "mquery": "3.2.2", 368 | "ms": "2.1.2", 369 | "regexp-clone": "1.0.0", 370 | "safe-buffer": "5.1.2", 371 | "sift": "7.0.1", 372 | "sliced": "1.0.1" 373 | }, 374 | "dependencies": { 375 | "safe-buffer": { 376 | "version": "5.1.2", 377 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 378 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 379 | } 380 | } 381 | }, 382 | "mongoose-legacy-pluralize": { 383 | "version": "1.0.2", 384 | "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", 385 | "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" 386 | }, 387 | "mpath": { 388 | "version": "0.7.0", 389 | "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.7.0.tgz", 390 | "integrity": "sha512-Aiq04hILxhz1L+f7sjGyn7IxYzWm1zLNNXcfhDtx04kZ2Gk7uvFdgZ8ts1cWa/6d0TQmag2yR8zSGZUmp0tFNg==" 391 | }, 392 | "mquery": { 393 | "version": "3.2.2", 394 | "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.2.tgz", 395 | "integrity": "sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q==", 396 | "requires": { 397 | "bluebird": "3.5.1", 398 | "debug": "3.1.0", 399 | "regexp-clone": "^1.0.0", 400 | "safe-buffer": "5.1.2", 401 | "sliced": "1.0.1" 402 | }, 403 | "dependencies": { 404 | "safe-buffer": { 405 | "version": "5.1.2", 406 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 407 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 408 | } 409 | } 410 | }, 411 | "ms": { 412 | "version": "2.1.2", 413 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 414 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 415 | }, 416 | "negotiator": { 417 | "version": "0.6.2", 418 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 419 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" 420 | }, 421 | "on-finished": { 422 | "version": "2.3.0", 423 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 424 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 425 | "requires": { 426 | "ee-first": "1.1.1" 427 | } 428 | }, 429 | "parseurl": { 430 | "version": "1.3.3", 431 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 432 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 433 | }, 434 | "path-to-regexp": { 435 | "version": "0.1.7", 436 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 437 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 438 | }, 439 | "process-nextick-args": { 440 | "version": "2.0.1", 441 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 442 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 443 | }, 444 | "proxy-addr": { 445 | "version": "2.0.6", 446 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", 447 | "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", 448 | "requires": { 449 | "forwarded": "~0.1.2", 450 | "ipaddr.js": "1.9.1" 451 | } 452 | }, 453 | "qs": { 454 | "version": "6.7.0", 455 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 456 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" 457 | }, 458 | "range-parser": { 459 | "version": "1.2.1", 460 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 461 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 462 | }, 463 | "raw-body": { 464 | "version": "2.4.0", 465 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 466 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", 467 | "requires": { 468 | "bytes": "3.1.0", 469 | "http-errors": "1.7.2", 470 | "iconv-lite": "0.4.24", 471 | "unpipe": "1.0.0" 472 | } 473 | }, 474 | "readable-stream": { 475 | "version": "2.3.7", 476 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 477 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 478 | "requires": { 479 | "core-util-is": "~1.0.0", 480 | "inherits": "~2.0.3", 481 | "isarray": "~1.0.0", 482 | "process-nextick-args": "~2.0.0", 483 | "safe-buffer": "~5.1.1", 484 | "string_decoder": "~1.1.1", 485 | "util-deprecate": "~1.0.1" 486 | }, 487 | "dependencies": { 488 | "safe-buffer": { 489 | "version": "5.1.2", 490 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 491 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 492 | } 493 | } 494 | }, 495 | "regexp-clone": { 496 | "version": "1.0.0", 497 | "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", 498 | "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" 499 | }, 500 | "require_optional": { 501 | "version": "1.0.1", 502 | "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", 503 | "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", 504 | "requires": { 505 | "resolve-from": "^2.0.0", 506 | "semver": "^5.1.0" 507 | } 508 | }, 509 | "resolve-from": { 510 | "version": "2.0.0", 511 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", 512 | "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" 513 | }, 514 | "safe-buffer": { 515 | "version": "5.2.0", 516 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", 517 | "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" 518 | }, 519 | "safer-buffer": { 520 | "version": "2.1.2", 521 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 522 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 523 | }, 524 | "saslprep": { 525 | "version": "1.0.3", 526 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", 527 | "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", 528 | "optional": true, 529 | "requires": { 530 | "sparse-bitfield": "^3.0.3" 531 | } 532 | }, 533 | "semver": { 534 | "version": "5.7.1", 535 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 536 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 537 | }, 538 | "send": { 539 | "version": "0.17.1", 540 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", 541 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", 542 | "requires": { 543 | "debug": "2.6.9", 544 | "depd": "~1.1.2", 545 | "destroy": "~1.0.4", 546 | "encodeurl": "~1.0.2", 547 | "escape-html": "~1.0.3", 548 | "etag": "~1.8.1", 549 | "fresh": "0.5.2", 550 | "http-errors": "~1.7.2", 551 | "mime": "1.6.0", 552 | "ms": "2.1.1", 553 | "on-finished": "~2.3.0", 554 | "range-parser": "~1.2.1", 555 | "statuses": "~1.5.0" 556 | }, 557 | "dependencies": { 558 | "debug": { 559 | "version": "2.6.9", 560 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 561 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 562 | "requires": { 563 | "ms": "2.0.0" 564 | }, 565 | "dependencies": { 566 | "ms": { 567 | "version": "2.0.0", 568 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 569 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 570 | } 571 | } 572 | }, 573 | "ms": { 574 | "version": "2.1.1", 575 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 576 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 577 | } 578 | } 579 | }, 580 | "serve-static": { 581 | "version": "1.14.1", 582 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 583 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", 584 | "requires": { 585 | "encodeurl": "~1.0.2", 586 | "escape-html": "~1.0.3", 587 | "parseurl": "~1.3.3", 588 | "send": "0.17.1" 589 | } 590 | }, 591 | "setprototypeof": { 592 | "version": "1.1.1", 593 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 594 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 595 | }, 596 | "sift": { 597 | "version": "7.0.1", 598 | "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz", 599 | "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==" 600 | }, 601 | "sliced": { 602 | "version": "1.0.1", 603 | "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", 604 | "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" 605 | }, 606 | "sparse-bitfield": { 607 | "version": "3.0.3", 608 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", 609 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", 610 | "optional": true, 611 | "requires": { 612 | "memory-pager": "^1.0.2" 613 | } 614 | }, 615 | "statuses": { 616 | "version": "1.5.0", 617 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 618 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 619 | }, 620 | "string_decoder": { 621 | "version": "1.1.1", 622 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 623 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 624 | "requires": { 625 | "safe-buffer": "~5.1.0" 626 | }, 627 | "dependencies": { 628 | "safe-buffer": { 629 | "version": "5.1.2", 630 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 631 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 632 | } 633 | } 634 | }, 635 | "toidentifier": { 636 | "version": "1.0.0", 637 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 638 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" 639 | }, 640 | "type-is": { 641 | "version": "1.6.18", 642 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 643 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 644 | "requires": { 645 | "media-typer": "0.3.0", 646 | "mime-types": "~2.1.24" 647 | } 648 | }, 649 | "unpipe": { 650 | "version": "1.0.0", 651 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 652 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 653 | }, 654 | "util-deprecate": { 655 | "version": "1.0.2", 656 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 657 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 658 | }, 659 | "utils-merge": { 660 | "version": "1.0.1", 661 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 662 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 663 | }, 664 | "vary": { 665 | "version": "1.1.2", 666 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 667 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 668 | } 669 | } 670 | } 671 | -------------------------------------------------------------------------------- /mongoose/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mongoose-learn", 3 | "version": "1.0.0", 4 | "description": "database stuff", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "harshit", 10 | "license": "ISC", 11 | "dependencies": { 12 | "body-parser": "^1.19.0", 13 | "express": "^4.17.1", 14 | "mongodb": "^3.5.7", 15 | "mongoose": "^5.9.11" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /node-learn/.gitignore: -------------------------------------------------------------------------------- 1 | # dependencies 2 | /node_modules 3 | 4 | # testing 5 | /coverage 6 | 7 | # production 8 | /build 9 | 10 | # misc 11 | .DS_Store 12 | .env.local 13 | .env.development.local 14 | .env.test.local 15 | .env.production.local 16 | 17 | npm-debug.log* 18 | yarn-debug.log* 19 | yarn-error.log* -------------------------------------------------------------------------------- /node-learn/express-server.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | let app=express(); 3 | app.listen(8888); 4 | console.log('its working'); -------------------------------------------------------------------------------- /node-learn/global.js: -------------------------------------------------------------------------------- 1 | var path=require('path'); 2 | 3 | var name='harshit bansal'; 4 | console.log(name); 5 | console.log(`name variable is ${name}`); 6 | console.log(__dirname); 7 | console.log(__filename); 8 | console.log(path.basename(__filename)); -------------------------------------------------------------------------------- /node-learn/http-form-submit.js: -------------------------------------------------------------------------------- 1 | const http=require('http'); 2 | const fs=require('fs'); 3 | 4 | http.createServer((req,res)=>{ 5 | let body=''; 6 | 7 | if(req.method==='GET'){ 8 | res.writeHead(200,{'Content-Type':'text/html'}); 9 | 10 | fs.readFile('./http-form.html','UTF-8',(err,data)=>{ 11 | if(err) throw err; 12 | res.write(data); 13 | res.end(); 14 | }); 15 | } 16 | else if(req.method==='POST'){ 17 | req.on('data',(data)=>{ 18 | body+=data; 19 | }); 20 | 21 | req.on('end',()=>{ 22 | res.writeHead(200,{'content-Type':'text/html'}); 23 | res.write(body,()=>{ 24 | res.end(); 25 | }); 26 | }); 27 | 28 | } 29 | else{ 30 | res.writeHead(200,{'content-Type':'text/plain'}); 31 | res.end('404 ,could not found page'); 32 | } 33 | 34 | }).listen(8888); 35 | 36 | console.log('server is running'); -------------------------------------------------------------------------------- /node-learn/http-form.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | Form 9 | 10 | 11 | 12 |
13 | 14 | 15 |
16 | 17 |
18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /node-learn/http-request.js: -------------------------------------------------------------------------------- 1 | const https=require('https'); 2 | const fs=require('fs'); 3 | 4 | const url ='https://jsonplaceholder.typicode.com/posts'; 5 | 6 | https.get(url,res=>{ 7 | res.setEncoding('utf8'); 8 | 9 | let body='' 10 | 11 | res.on('data',data=>{ 12 | body+=data; 13 | }); 14 | 15 | res.on('end',()=>{ 16 | 17 | body=JSON.parse(body); 18 | console.log(` ${body[0].title}`); 19 | 20 | // fs.writeFile('data.json',body,'utf8',(err)=>{ 21 | 22 | // if(err) return err; 23 | 24 | // console.log('just pulled all the posts and crested post'); 25 | // }); 26 | }) 27 | 28 | }); -------------------------------------------------------------------------------- /node-learn/http-server-files.js: -------------------------------------------------------------------------------- 1 | const http=require('http'); 2 | const fs=require('fs'); 3 | 4 | http.createServer((req,res)=>{ 5 | console.log(req); 6 | }).listen(8888); -------------------------------------------------------------------------------- /node-learn/http-server-json.js: -------------------------------------------------------------------------------- 1 | const https=require('https'); 2 | const fs=require('fs'); 3 | const http=require('http'); 4 | 5 | const url='https://jsonplaceholder.typicode.com/posts'; 6 | 7 | http.createServer((req,serverReq)=>{ 8 | if(req.method === 'GET' && req.url === '/posts'){ 9 | 10 | https.get(url,(httpReq)=>{ 11 | 12 | httpReq.on('data',data=>{ 13 | httpReq.setEncoding('utf8'); 14 | // console.log(data); 15 | serverReq.write(data); 16 | }); 17 | 18 | httpReq.on('end',()=>{ 19 | serverReq.end(); 20 | console.log('its over'); 21 | }); 22 | }); 23 | } 24 | 25 | }).listen(8888); 26 | console.log('server is running'); -------------------------------------------------------------------------------- /node-learn/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Document 7 | 8 | 9 |
10 | 11 | 12 |
13 | 14 | -------------------------------------------------------------------------------- /node-learn/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "requires": true, 3 | "lockfileVersion": 1, 4 | "dependencies": { 5 | "ws": { 6 | "version": "7.2.5", 7 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.5.tgz", 8 | "integrity": "sha512-C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA==" 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /node-learn/process.js: -------------------------------------------------------------------------------- 1 | // console.log(process.argv); 2 | 3 | // var flag=process.argv.indexOf('--user'); 4 | // console.log(flag); 5 | 6 | process.stdout.write("what is your name?\n"); 7 | process.stdin.on('data',function(answer){ 8 | console.log(answer.toString().trim()); 9 | process.exit(); 10 | }) -------------------------------------------------------------------------------- /node-learn/readine.js: -------------------------------------------------------------------------------- 1 | var readline =require('readline'); 2 | var util = require('util'); 3 | 4 | var RL = readline.createInterface(process.stdin,process.stdout); 5 | 6 | RL.question('what is your name? ',(name)=>{ 7 | RL.setPrompt(`${name} how old are you? `); 8 | RL.prompt(); 9 | 10 | RL.on('line',(age)=>{ 11 | 12 | if (age<18){ 13 | util.log(`${name.trim()} beacuse you are ${age} years old, you cann't proceed further`); 14 | }else{ 15 | util.log(`${name.trim()} , you are ${age} years old, NOw you can use our services`); 16 | } 17 | 18 | RL.close(); 19 | }); 20 | }); -------------------------------------------------------------------------------- /node-learn/server.js: -------------------------------------------------------------------------------- 1 | const http =require('http'); 2 | 3 | const server=http.createServer((req,res)=>{ 4 | res.writeHead(200,{'content-Type':'text/html'}); 5 | res.end('

hello guys harshit bansal here!

'); 6 | }); 7 | 8 | server.listen(8888); 9 | console.log("our server is running"); -------------------------------------------------------------------------------- /node-learn/websocket-client.js: -------------------------------------------------------------------------------- 1 | const WS = new WebSocket('ws://localhost:3232'); 2 | 3 | WS.onmessage=(payload)=>{ 4 | displayMessages(payload.data); 5 | }; 6 | 7 | WS.onopen=()=>{ 8 | displayTitle('Connected to server'); 9 | }; 10 | 11 | WS.onclose=()=>{ 12 | displayTitle('Disconnected to server'); 13 | }; 14 | 15 | function displayTitle(title){ 16 | document.querySelector('h1').innerHTML=title; 17 | } 18 | 19 | function displayMessages(message){ 20 | let h1=document.createElement('h1'); 21 | h1.innerText=message; 22 | document.querySelector('div.messages').appendChild(h1); 23 | } 24 | 25 | document.forms[0].onsubmit = ()=>{ 26 | let input=document.getElementById('message'); 27 | // console.log(input.value); 28 | WS.send(input.value); 29 | }; -------------------------------------------------------------------------------- /node-learn/websocket-server.js: -------------------------------------------------------------------------------- 1 | const WebSocketServer = require('ws').Server; 2 | const WSS = new WebSocketServer({port : 3232}); 3 | 4 | WSS.on('connection',(ws)=>{ 5 | 6 | ws.on('message',(message)=>{ 7 | 8 | if(message==='close'){ 9 | ws.close(); 10 | } 11 | else{ 12 | WSS.clients.forEach((client)=>{ 13 | client.send(message); 14 | }); 15 | } 16 | 17 | console.log(message); 18 | }); 19 | 20 | console.log('we are connected'); 21 | }); -------------------------------------------------------------------------------- /node-learn/websocket.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Document 7 | 8 | 9 |

APP

10 | 11 |
12 | 13 | 14 | 15 |
16 | 17 |
18 | 19 | 20 | --------------------------------------------------------------------------------