multer-init
This commit is contained in:
		
							
								
								
									
										15
									
								
								.vscode/launch.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								.vscode/launch.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | { | ||||||
|  |   // Use IntelliSense to learn about possible attributes. | ||||||
|  |   // Hover to view descriptions of existing attributes. | ||||||
|  |   // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 | ||||||
|  |   "version": "0.2.0", | ||||||
|  |   "configurations": [ | ||||||
|  |     { | ||||||
|  |       "type": "node", | ||||||
|  |       "request": "launch", | ||||||
|  |       "name": "Launch Program", | ||||||
|  |       "skipFiles": ["<node_internals>/**"], | ||||||
|  |       "program": "${workspaceFolder}\\app.js" | ||||||
|  |     } | ||||||
|  |   ] | ||||||
|  | } | ||||||
							
								
								
									
										24
									
								
								app.js
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								app.js
									
									
									
									
									
								
							| @@ -7,28 +7,28 @@ const { log } = require("console"); | |||||||
| const app = express(); | const app = express(); | ||||||
| const jsonParser = bodyParser.json(); | const jsonParser = bodyParser.json(); | ||||||
|  |  | ||||||
|  | // local bootstrap | ||||||
| app.use( | app.use( | ||||||
|   "/bootstrap", |   "/bootstrap", | ||||||
|   express.static(join(__dirname, "node_modules/bootstrap/dist")) |   express.static(join(__dirname, "node_modules/bootstrap/dist")) | ||||||
| ); | ); | ||||||
|  |  | ||||||
|  | // local jquery | ||||||
| app.use("/jquery", express.static(join(__dirname, "node_modules/jquery/dist"))); | app.use("/jquery", express.static(join(__dirname, "node_modules/jquery/dist"))); | ||||||
|  |  | ||||||
| // app.use(express.static(__dirname + 'public')); | // index.html | ||||||
| // получение списка данных |  | ||||||
|  |  | ||||||
| // app.use("/index", express.static(join(__dirname + "public"))) |  | ||||||
| app.get("/", function (req, res) { | app.get("/", function (req, res) { | ||||||
|   res.sendFile(join(__dirname, "index.html")); |   res.sendFile(join(__dirname, "index.html")); | ||||||
| }); | }); | ||||||
|  |  | ||||||
|  | // Список пользователей | ||||||
| app.get("/api/users", function (req, res) { | app.get("/api/users", function (req, res) { | ||||||
|   var content = fs.readFileSync("users.json", "utf8"); |   var content = fs.readFileSync("users.json", "utf8"); | ||||||
|   var users = JSON.parse(content); |   var users = JSON.parse(content); | ||||||
|   res.send(users); |   res.send(users); | ||||||
| }); | }); | ||||||
|  |  | ||||||
| // получение одного пользователя по id | // Получение одного пользователя по id | ||||||
| app.get("/api/users/:id", function (req, res) { | app.get("/api/users/:id", function (req, res) { | ||||||
|   var id = req.params.id; // получаем id |   var id = req.params.id; // получаем id | ||||||
|   var content = fs.readFileSync("users.json", "utf8"); |   var content = fs.readFileSync("users.json", "utf8"); | ||||||
| @@ -41,7 +41,7 @@ app.get("/api/users/:id", function (req, res) { | |||||||
|       break; |       break; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|   // отправляем пользователя |   // Отправляем пользователя | ||||||
|   if (user) { |   if (user) { | ||||||
|     res.send(user); |     res.send(user); | ||||||
|   } else { |   } else { | ||||||
| @@ -49,9 +49,10 @@ app.get("/api/users/:id", function (req, res) { | |||||||
|   } |   } | ||||||
| }); | }); | ||||||
|  |  | ||||||
| // получение отправленных данных | // Получение отправленных данных | ||||||
| app.post("/api/users", jsonParser, function (req, res) { | app.post("/api/users", jsonParser, function (req, res) { | ||||||
|   if (!req.body) return res.sendStatus(400); |   if (!req.body) return res.sendStatus(400); | ||||||
|  |   if (!req.body.name) return res.sendStatus(400); | ||||||
|  |  | ||||||
|   var userName = req.body.name; |   var userName = req.body.name; | ||||||
|   var userAge = +req.body.age; |   var userAge = +req.body.age; | ||||||
| @@ -64,19 +65,19 @@ app.post("/api/users", jsonParser, function (req, res) { | |||||||
|     fs.writeFileSync("users.json"); |     fs.writeFileSync("users.json"); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   // находим максимальный id |   // Находим максимальный id | ||||||
|   var maxid = Math.max.apply( |   var maxid = Math.max.apply( | ||||||
|     Math, |     Math, | ||||||
|     users.map(function (o) { |     users.map(function (o) { | ||||||
|       return o.id; |       return o.id; | ||||||
|     }) |     }) | ||||||
|   ); |   ); | ||||||
|   // увеличиваем его на единицу |   // Увеличиваем его на единицу | ||||||
|   user.id = maxid + 1; |   user.id = maxid + 1; | ||||||
|   // добавляем пользователя в массив |   // Добавляем пользователя в массив | ||||||
|   users.push(user); |   users.push(user); | ||||||
|   var data = JSON.stringify(users); |   var data = JSON.stringify(users); | ||||||
|   // перезаписываем файл с новыми данными |   // Перезаписываем файл с новыми данными | ||||||
|   fs.writeFileSync("users.json", data); |   fs.writeFileSync("users.json", data); | ||||||
|   res.send(user); |   res.send(user); | ||||||
| }); | }); | ||||||
| @@ -109,6 +110,7 @@ app.delete("/api/users/:id", function (req, res) { | |||||||
| // изменение пользователя | // изменение пользователя | ||||||
| app.put("/api/users", jsonParser, function (req, res) { | app.put("/api/users", jsonParser, function (req, res) { | ||||||
|   if (!req.body) return res.sendStatus(400); |   if (!req.body) return res.sendStatus(400); | ||||||
|  |   if (!req.body.name) return res.sendStatus(400); | ||||||
|  |  | ||||||
|   var userId = req.body.id; |   var userId = req.body.id; | ||||||
|   var userName = req.body.name; |   var userName = req.body.name; | ||||||
|   | |||||||
| @@ -61,6 +61,7 @@ | |||||||
|             }, |             }, | ||||||
|           }); |           }); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         // Получение одного пользователя |         // Получение одного пользователя | ||||||
|         function GetUser(id) { |         function GetUser(id) { | ||||||
|           $.ajax({ |           $.ajax({ | ||||||
| @@ -75,6 +76,7 @@ | |||||||
|             }, |             }, | ||||||
|           }); |           }); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         // Добавление пользователя |         // Добавление пользователя | ||||||
|         function CreateUser(userName, userAge) { |         function CreateUser(userName, userAge) { | ||||||
|           $.ajax({ |           $.ajax({ | ||||||
| @@ -91,6 +93,7 @@ | |||||||
|             }, |             }, | ||||||
|           }); |           }); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         // Изменение пользователя |         // Изменение пользователя | ||||||
|         function EditUser(userId, userName, userAge) { |         function EditUser(userId, userName, userAge) { | ||||||
|           $.ajax({ |           $.ajax({ | ||||||
| @@ -109,7 +112,7 @@ | |||||||
|           }); |           }); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         // сброс формы |         // Сброс формы | ||||||
|         function reset() { |         function reset() { | ||||||
|           var form = document.forms["userForm"]; |           var form = document.forms["userForm"]; | ||||||
|           form.reset(); |           form.reset(); | ||||||
| @@ -128,6 +131,7 @@ | |||||||
|             }, |             }, | ||||||
|           }); |           }); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         // создание строки для таблицы |         // создание строки для таблицы | ||||||
|         var row = function (user) { |         var row = function (user) { | ||||||
|           return ( |           return ( | ||||||
| @@ -149,6 +153,7 @@ | |||||||
|             "'>Удалить</a></td></tr>" |             "'>Удалить</a></td></tr>" | ||||||
|           ); |           ); | ||||||
|         }; |         }; | ||||||
|  |  | ||||||
|         // сброс значений формы |         // сброс значений формы | ||||||
|         $("#reset").click(function (e) { |         $("#reset").click(function (e) { | ||||||
|           e.preventDefault(); |           e.preventDefault(); | ||||||
| @@ -161,6 +166,7 @@ | |||||||
|           var id = this.elements["id"].value; |           var id = this.elements["id"].value; | ||||||
|           var name = this.elements["name"].value; |           var name = this.elements["name"].value; | ||||||
|           var age = this.elements["age"].value; |           var age = this.elements["age"].value; | ||||||
|  |           if (name == "" || id == "" || age == 0) return false; | ||||||
|           if (id == 0) CreateUser(name, age); |           if (id == 0) CreateUser(name, age); | ||||||
|           else EditUser(id, name, age); |           else EditUser(id, name, age); | ||||||
|         }); |         }); | ||||||
|   | |||||||
							
								
								
									
										155
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										155
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -12,7 +12,8 @@ | |||||||
|         "body-parser": "^1.16.0", |         "body-parser": "^1.16.0", | ||||||
|         "bootstrap": "^5.3.2", |         "bootstrap": "^5.3.2", | ||||||
|         "express": "^4.18.2", |         "express": "^4.18.2", | ||||||
|         "jquery": "^3.7.1" |         "jquery": "^3.7.1", | ||||||
|  |         "multer": "^1.4.5-lts.1" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@popperjs/core": { |     "node_modules/@popperjs/core": { | ||||||
| @@ -37,6 +38,11 @@ | |||||||
|         "node": ">= 0.6" |         "node": ">= 0.6" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/append-field": { | ||||||
|  |       "version": "1.0.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", | ||||||
|  |       "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" | ||||||
|  |     }, | ||||||
|     "node_modules/array-flatten": { |     "node_modules/array-flatten": { | ||||||
|       "version": "1.1.1", |       "version": "1.1.1", | ||||||
|       "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", |       "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", | ||||||
| @@ -83,6 +89,22 @@ | |||||||
|         "@popperjs/core": "^2.11.8" |         "@popperjs/core": "^2.11.8" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/buffer-from": { | ||||||
|  |       "version": "1.1.2", | ||||||
|  |       "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", | ||||||
|  |       "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" | ||||||
|  |     }, | ||||||
|  |     "node_modules/busboy": { | ||||||
|  |       "version": "1.6.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", | ||||||
|  |       "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", | ||||||
|  |       "dependencies": { | ||||||
|  |         "streamsearch": "^1.1.0" | ||||||
|  |       }, | ||||||
|  |       "engines": { | ||||||
|  |         "node": ">=10.16.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "node_modules/bytes": { |     "node_modules/bytes": { | ||||||
|       "version": "3.1.2", |       "version": "3.1.2", | ||||||
|       "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", |       "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", | ||||||
| @@ -103,6 +125,20 @@ | |||||||
|         "url": "https://github.com/sponsors/ljharb" |         "url": "https://github.com/sponsors/ljharb" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/concat-stream": { | ||||||
|  |       "version": "1.6.2", | ||||||
|  |       "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", | ||||||
|  |       "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", | ||||||
|  |       "engines": [ | ||||||
|  |         "node >= 0.8" | ||||||
|  |       ], | ||||||
|  |       "dependencies": { | ||||||
|  |         "buffer-from": "^1.0.0", | ||||||
|  |         "inherits": "^2.0.3", | ||||||
|  |         "readable-stream": "^2.2.2", | ||||||
|  |         "typedarray": "^0.0.6" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "node_modules/content-disposition": { |     "node_modules/content-disposition": { | ||||||
|       "version": "0.5.4", |       "version": "0.5.4", | ||||||
|       "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", |       "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", | ||||||
| @@ -135,6 +171,11 @@ | |||||||
|       "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", |       "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", | ||||||
|       "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" |       "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/core-util-is": { | ||||||
|  |       "version": "1.0.3", | ||||||
|  |       "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", | ||||||
|  |       "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" | ||||||
|  |     }, | ||||||
|     "node_modules/debug": { |     "node_modules/debug": { | ||||||
|       "version": "2.6.9", |       "version": "2.6.9", | ||||||
|       "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", |       "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | ||||||
| @@ -388,6 +429,11 @@ | |||||||
|         "node": ">= 0.10" |         "node": ">= 0.10" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/isarray": { | ||||||
|  |       "version": "1.0.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", | ||||||
|  |       "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" | ||||||
|  |     }, | ||||||
|     "node_modules/jquery": { |     "node_modules/jquery": { | ||||||
|       "version": "3.7.1", |       "version": "3.7.1", | ||||||
|       "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", |       "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", | ||||||
| @@ -444,11 +490,47 @@ | |||||||
|         "node": ">= 0.6" |         "node": ">= 0.6" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/minimist": { | ||||||
|  |       "version": "1.2.8", | ||||||
|  |       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", | ||||||
|  |       "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", | ||||||
|  |       "funding": { | ||||||
|  |         "url": "https://github.com/sponsors/ljharb" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "node_modules/mkdirp": { | ||||||
|  |       "version": "0.5.6", | ||||||
|  |       "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", | ||||||
|  |       "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", | ||||||
|  |       "dependencies": { | ||||||
|  |         "minimist": "^1.2.6" | ||||||
|  |       }, | ||||||
|  |       "bin": { | ||||||
|  |         "mkdirp": "bin/cmd.js" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "node_modules/ms": { |     "node_modules/ms": { | ||||||
|       "version": "2.0.0", |       "version": "2.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", |       "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | ||||||
|       "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" |       "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/multer": { | ||||||
|  |       "version": "1.4.5-lts.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", | ||||||
|  |       "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", | ||||||
|  |       "dependencies": { | ||||||
|  |         "append-field": "^1.0.0", | ||||||
|  |         "busboy": "^1.0.0", | ||||||
|  |         "concat-stream": "^1.5.2", | ||||||
|  |         "mkdirp": "^0.5.4", | ||||||
|  |         "object-assign": "^4.1.1", | ||||||
|  |         "type-is": "^1.6.4", | ||||||
|  |         "xtend": "^4.0.0" | ||||||
|  |       }, | ||||||
|  |       "engines": { | ||||||
|  |         "node": ">= 6.0.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "node_modules/negotiator": { |     "node_modules/negotiator": { | ||||||
|       "version": "0.6.3", |       "version": "0.6.3", | ||||||
|       "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", |       "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", | ||||||
| @@ -457,6 +539,14 @@ | |||||||
|         "node": ">= 0.6" |         "node": ">= 0.6" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/object-assign": { | ||||||
|  |       "version": "4.1.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", | ||||||
|  |       "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", | ||||||
|  |       "engines": { | ||||||
|  |         "node": ">=0.10.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "node_modules/object-inspect": { |     "node_modules/object-inspect": { | ||||||
|       "version": "1.13.0", |       "version": "1.13.0", | ||||||
|       "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.0.tgz", |       "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.0.tgz", | ||||||
| @@ -489,6 +579,11 @@ | |||||||
|       "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", |       "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", | ||||||
|       "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" |       "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/process-nextick-args": { | ||||||
|  |       "version": "2.0.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", | ||||||
|  |       "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" | ||||||
|  |     }, | ||||||
|     "node_modules/proxy-addr": { |     "node_modules/proxy-addr": { | ||||||
|       "version": "2.0.7", |       "version": "2.0.7", | ||||||
|       "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", |       "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", | ||||||
| @@ -537,6 +632,25 @@ | |||||||
|         "node": ">= 0.8" |         "node": ">= 0.8" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/readable-stream": { | ||||||
|  |       "version": "2.3.8", | ||||||
|  |       "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", | ||||||
|  |       "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", | ||||||
|  |       "dependencies": { | ||||||
|  |         "core-util-is": "~1.0.0", | ||||||
|  |         "inherits": "~2.0.3", | ||||||
|  |         "isarray": "~1.0.0", | ||||||
|  |         "process-nextick-args": "~2.0.0", | ||||||
|  |         "safe-buffer": "~5.1.1", | ||||||
|  |         "string_decoder": "~1.1.1", | ||||||
|  |         "util-deprecate": "~1.0.1" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "node_modules/readable-stream/node_modules/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==" | ||||||
|  |     }, | ||||||
|     "node_modules/safe-buffer": { |     "node_modules/safe-buffer": { | ||||||
|       "version": "5.2.1", |       "version": "5.2.1", | ||||||
|       "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", |       "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", | ||||||
| @@ -629,6 +743,27 @@ | |||||||
|         "node": ">= 0.8" |         "node": ">= 0.8" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/streamsearch": { | ||||||
|  |       "version": "1.1.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", | ||||||
|  |       "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", | ||||||
|  |       "engines": { | ||||||
|  |         "node": ">=10.0.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "node_modules/string_decoder": { | ||||||
|  |       "version": "1.1.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | ||||||
|  |       "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", | ||||||
|  |       "dependencies": { | ||||||
|  |         "safe-buffer": "~5.1.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "node_modules/string_decoder/node_modules/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==" | ||||||
|  |     }, | ||||||
|     "node_modules/toidentifier": { |     "node_modules/toidentifier": { | ||||||
|       "version": "1.0.1", |       "version": "1.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", |       "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", | ||||||
| @@ -649,6 +784,11 @@ | |||||||
|         "node": ">= 0.6" |         "node": ">= 0.6" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/typedarray": { | ||||||
|  |       "version": "0.0.6", | ||||||
|  |       "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", | ||||||
|  |       "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" | ||||||
|  |     }, | ||||||
|     "node_modules/unpipe": { |     "node_modules/unpipe": { | ||||||
|       "version": "1.0.0", |       "version": "1.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", |       "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", | ||||||
| @@ -657,6 +797,11 @@ | |||||||
|         "node": ">= 0.8" |         "node": ">= 0.8" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/util-deprecate": { | ||||||
|  |       "version": "1.0.2", | ||||||
|  |       "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", | ||||||
|  |       "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" | ||||||
|  |     }, | ||||||
|     "node_modules/utils-merge": { |     "node_modules/utils-merge": { | ||||||
|       "version": "1.0.1", |       "version": "1.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", |       "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", | ||||||
| @@ -672,6 +817,14 @@ | |||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">= 0.8" |         "node": ">= 0.8" | ||||||
|       } |       } | ||||||
|  |     }, | ||||||
|  |     "node_modules/xtend": { | ||||||
|  |       "version": "4.0.2", | ||||||
|  |       "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", | ||||||
|  |       "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", | ||||||
|  |       "engines": { | ||||||
|  |         "node": ">=0.4" | ||||||
|  |       } | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -5,7 +5,8 @@ | |||||||
|     "body-parser": "^1.16.0", |     "body-parser": "^1.16.0", | ||||||
|     "bootstrap": "^5.3.2", |     "bootstrap": "^5.3.2", | ||||||
|     "express": "^4.18.2", |     "express": "^4.18.2", | ||||||
|     "jquery": "^3.7.1" |     "jquery": "^3.7.1", | ||||||
|  |     "multer": "^1.4.5-lts.1" | ||||||
|   }, |   }, | ||||||
|   "description": "https://nodejsdev.ru/guides/metanit/express-api/", |   "description": "https://nodejsdev.ru/guides/metanit/express-api/", | ||||||
|   "main": "app.js", |   "main": "app.js", | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 =
					=