Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
H
hw87AlenBolatov
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Болатов Ален
hw87AlenBolatov
Commits
a0e4c63e
Commit
a0e4c63e
authored
Mar 14, 2023
by
Болатов Ален
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
#2
connect multer for file handling
parent
96aa4852
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
452 additions
and
47 deletions
+452
-47
package-lock.json
backend/package-lock.json
+399
-17
package.json
backend/package.json
+8
-2
index.ts
backend/src/index.ts
+4
-2
artist.ts
backend/src/routes/artist.ts
+41
-26
504fb468410c009000968b276ae8f92a
backend/uploads/504fb468410c009000968b276ae8f92a
+0
-0
No files found.
backend/package-lock.json
View file @
a0e4c63e
...
...
@@ -10,14 +10,20 @@
"license"
:
"ISC"
,
"dependencies"
:
{
"@types/node"
:
"^18.15.3"
,
"body-parser"
:
"^1.20.2"
,
"cors"
:
"^2.8.5"
,
"dotenv"
:
"^16.0.3"
,
"express"
:
"^4.18.2"
,
"mongoose"
:
"^7.0.1"
,
"multer"
:
"^1.4.5-lts.1"
,
"ts-node-dev"
:
"^2.0.0"
},
"devDependencies"
:
{
"@types/body-parser"
:
"^1.19.2"
,
"@types/cors"
:
"^2.8.13"
,
"@types/express"
:
"^4.17.17"
,
"@types/mongoose"
:
"^5.11.97"
"@types/mongoose"
:
"^5.11.97"
,
"@types/multer"
:
"^1.4.7"
}
},
"node_modules/@cspotcode/source-map-support"
:
{
...
...
@@ -92,6 +98,15 @@
"@types/node"
:
"*"
}
},
"node_modules/@types/cors"
:
{
"version"
:
"2.8.13"
,
"resolved"
:
"https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz"
,
"integrity"
:
"sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA=="
,
"dev"
:
true
,
"dependencies"
:
{
"@types/node"
:
"*"
}
},
"node_modules/@types/express"
:
{
"version"
:
"4.17.17"
,
"resolved"
:
"https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz"
,
...
...
@@ -131,6 +146,15 @@
"mongoose"
:
"*"
}
},
"node_modules/@types/multer"
:
{
"version"
:
"1.4.7"
,
"resolved"
:
"https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz"
,
"integrity"
:
"sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA=="
,
"dev"
:
true
,
"dependencies"
:
{
"@types/express"
:
"*"
}
},
"node_modules/@types/node"
:
{
"version"
:
"18.15.3"
,
"resolved"
:
"https://registry.npmjs.org/@types/node/-/node-18.15.3.tgz"
,
...
...
@@ -225,6 +249,11 @@
"node"
:
">= 8"
}
},
"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/arg"
:
{
"version"
:
"4.1.3"
,
"resolved"
:
"https://registry.npmjs.org/arg/-/arg-4.1.3.tgz"
,
...
...
@@ -249,12 +278,12 @@
}
},
"node_modules/body-parser"
:
{
"version"
:
"1.20.
1
"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.
1
.tgz"
,
"integrity"
:
"sha512-
jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw
=="
,
"version"
:
"1.20.
2
"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.
2
.tgz"
,
"integrity"
:
"sha512-
ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA
=="
,
"dependencies"
:
{
"bytes"
:
"3.1.2"
,
"content-type"
:
"~1.0.
4
"
,
"content-type"
:
"~1.0.
5
"
,
"debug"
:
"2.6.9"
,
"depd"
:
"2.0.0"
,
"destroy"
:
"1.2.0"
,
...
...
@@ -262,7 +291,7 @@
"iconv-lite"
:
"0.4.24"
,
"on-finished"
:
"2.4.1"
,
"qs"
:
"6.11.0"
,
"raw-body"
:
"2.5.
1
"
,
"raw-body"
:
"2.5.
2
"
,
"type-is"
:
"~1.6.18"
,
"unpipe"
:
"1.0.0"
},
...
...
@@ -304,6 +333,17 @@
"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"
:
{
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
,
...
...
@@ -355,6 +395,20 @@
"resolved"
:
"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
,
"integrity"
:
"sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"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"
:
{
"version"
:
"0.5.4"
,
"resolved"
:
"https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz"
,
...
...
@@ -387,6 +441,23 @@
"resolved"
:
"https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
,
"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/cors"
:
{
"version"
:
"2.8.5"
,
"resolved"
:
"https://registry.npmjs.org/cors/-/cors-2.8.5.tgz"
,
"integrity"
:
"sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g=="
,
"dependencies"
:
{
"object-assign"
:
"^4"
,
"vary"
:
"^1"
},
"engines"
:
{
"node"
:
">= 0.10"
}
},
"node_modules/create-require"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz"
,
...
...
@@ -508,6 +579,43 @@
"node"
:
">= 0.10.0"
}
},
"node_modules/express/node_modules/body-parser"
:
{
"version"
:
"1.20.1"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz"
,
"integrity"
:
"sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw=="
,
"dependencies"
:
{
"bytes"
:
"3.1.2"
,
"content-type"
:
"~1.0.4"
,
"debug"
:
"2.6.9"
,
"depd"
:
"2.0.0"
,
"destroy"
:
"1.2.0"
,
"http-errors"
:
"2.0.0"
,
"iconv-lite"
:
"0.4.24"
,
"on-finished"
:
"2.4.1"
,
"qs"
:
"6.11.0"
,
"raw-body"
:
"2.5.1"
,
"type-is"
:
"~1.6.18"
,
"unpipe"
:
"1.0.0"
},
"engines"
:
{
"node"
:
">= 0.8"
,
"npm"
:
"1.2.8000 || >= 1.4.16"
}
},
"node_modules/express/node_modules/raw-body"
:
{
"version"
:
"2.5.1"
,
"resolved"
:
"https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz"
,
"integrity"
:
"sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig=="
,
"dependencies"
:
{
"bytes"
:
"3.1.2"
,
"http-errors"
:
"2.0.0"
,
"iconv-lite"
:
"0.4.24"
,
"unpipe"
:
"1.0.0"
},
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/fill-range"
:
{
"version"
:
"7.0.1"
,
"resolved"
:
"https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
,
...
...
@@ -742,6 +850,11 @@
"node"
:
">=0.12.0"
}
},
"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/kareem"
:
{
"version"
:
"2.5.1"
,
"resolved"
:
"https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz"
,
...
...
@@ -954,6 +1067,34 @@
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
,
"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/multer/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/negotiator"
:
{
"version"
:
"0.6.3"
,
"resolved"
:
"https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz"
,
...
...
@@ -970,6 +1111,14 @@
"node"
:
">=0.10.0"
}
},
"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"
:
{
"version"
:
"1.12.3"
,
"resolved"
:
"https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz"
,
...
...
@@ -1034,6 +1183,11 @@
"url"
:
"https://github.com/sponsors/jonschlinkert"
}
},
"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"
:
{
"version"
:
"2.0.7"
,
"resolved"
:
"https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz"
,
...
...
@@ -1077,9 +1231,9 @@
}
},
"node_modules/raw-body"
:
{
"version"
:
"2.5.
1
"
,
"resolved"
:
"https://registry.npmjs.org/raw-body/-/raw-body-2.5.
1
.tgz"
,
"integrity"
:
"sha512-
qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig
=="
,
"version"
:
"2.5.
2
"
,
"resolved"
:
"https://registry.npmjs.org/raw-body/-/raw-body-2.5.
2
.tgz"
,
"integrity"
:
"sha512-
8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA
=="
,
"dependencies"
:
{
"bytes"
:
"3.1.2"
,
"http-errors"
:
"2.0.0"
,
...
...
@@ -1090,6 +1244,25 @@
"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/readdirp"
:
{
"version"
:
"3.6.0"
,
"resolved"
:
"https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
,
...
...
@@ -1285,6 +1458,27 @@
"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/strip-bom"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz"
,
...
...
@@ -1448,6 +1642,11 @@
"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/typescript"
:
{
"version"
:
"4.9.5"
,
"resolved"
:
"https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz"
,
...
...
@@ -1469,6 +1668,11 @@
"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"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"
,
...
...
@@ -1599,6 +1803,15 @@
"@types/node"
:
"*"
}
},
"@types/cors"
:
{
"version"
:
"2.8.13"
,
"resolved"
:
"https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz"
,
"integrity"
:
"sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA=="
,
"dev"
:
true
,
"requires"
:
{
"@types/node"
:
"*"
}
},
"@types/express"
:
{
"version"
:
"4.17.17"
,
"resolved"
:
"https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz"
,
...
...
@@ -1637,6 +1850,15 @@
"mongoose"
:
"*"
}
},
"@types/multer"
:
{
"version"
:
"1.4.7"
,
"resolved"
:
"https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz"
,
"integrity"
:
"sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA=="
,
"dev"
:
true
,
"requires"
:
{
"@types/express"
:
"*"
}
},
"@types/node"
:
{
"version"
:
"18.15.3"
,
"resolved"
:
"https://registry.npmjs.org/@types/node/-/node-18.15.3.tgz"
,
...
...
@@ -1716,6 +1938,11 @@
"picomatch"
:
"^2.0.4"
}
},
"append-field"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz"
,
"integrity"
:
"sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw=="
},
"arg"
:
{
"version"
:
"4.1.3"
,
"resolved"
:
"https://registry.npmjs.org/arg/-/arg-4.1.3.tgz"
,
...
...
@@ -1737,12 +1964,12 @@
"integrity"
:
"sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
},
"body-parser"
:
{
"version"
:
"1.20.
1
"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.
1
.tgz"
,
"integrity"
:
"sha512-
jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw
=="
,
"version"
:
"1.20.
2
"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.
2
.tgz"
,
"integrity"
:
"sha512-
ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA
=="
,
"requires"
:
{
"bytes"
:
"3.1.2"
,
"content-type"
:
"~1.0.
4
"
,
"content-type"
:
"~1.0.
5
"
,
"debug"
:
"2.6.9"
,
"depd"
:
"2.0.0"
,
"destroy"
:
"1.2.0"
,
...
...
@@ -1750,7 +1977,7 @@
"iconv-lite"
:
"0.4.24"
,
"on-finished"
:
"2.4.1"
,
"qs"
:
"6.11.0"
,
"raw-body"
:
"2.5.
1
"
,
"raw-body"
:
"2.5.
2
"
,
"type-is"
:
"~1.6.18"
,
"unpipe"
:
"1.0.0"
}
...
...
@@ -1782,6 +2009,14 @@
"resolved"
:
"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz"
,
"integrity"
:
"sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
"busboy"
:
{
"version"
:
"1.6.0"
,
"resolved"
:
"https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz"
,
"integrity"
:
"sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA=="
,
"requires"
:
{
"streamsearch"
:
"^1.1.0"
}
},
"bytes"
:
{
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
,
...
...
@@ -1816,6 +2051,17 @@
"resolved"
:
"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
,
"integrity"
:
"sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"concat-stream"
:
{
"version"
:
"1.6.2"
,
"resolved"
:
"https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz"
,
"integrity"
:
"sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw=="
,
"requires"
:
{
"buffer-from"
:
"^1.0.0"
,
"inherits"
:
"^2.0.3"
,
"readable-stream"
:
"^2.2.2"
,
"typedarray"
:
"^0.0.6"
}
},
"content-disposition"
:
{
"version"
:
"0.5.4"
,
"resolved"
:
"https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz"
,
...
...
@@ -1839,6 +2085,20 @@
"resolved"
:
"https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
,
"integrity"
:
"sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
},
"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=="
},
"cors"
:
{
"version"
:
"2.8.5"
,
"resolved"
:
"https://registry.npmjs.org/cors/-/cors-2.8.5.tgz"
,
"integrity"
:
"sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g=="
,
"requires"
:
{
"object-assign"
:
"^4"
,
"vary"
:
"^1"
}
},
"create-require"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz"
,
...
...
@@ -1936,6 +2196,38 @@
"type-is"
:
"~1.6.18"
,
"utils-merge"
:
"1.0.1"
,
"vary"
:
"~1.1.2"
},
"dependencies"
:
{
"body-parser"
:
{
"version"
:
"1.20.1"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz"
,
"integrity"
:
"sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw=="
,
"requires"
:
{
"bytes"
:
"3.1.2"
,
"content-type"
:
"~1.0.4"
,
"debug"
:
"2.6.9"
,
"depd"
:
"2.0.0"
,
"destroy"
:
"1.2.0"
,
"http-errors"
:
"2.0.0"
,
"iconv-lite"
:
"0.4.24"
,
"on-finished"
:
"2.4.1"
,
"qs"
:
"6.11.0"
,
"raw-body"
:
"2.5.1"
,
"type-is"
:
"~1.6.18"
,
"unpipe"
:
"1.0.0"
}
},
"raw-body"
:
{
"version"
:
"2.5.1"
,
"resolved"
:
"https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz"
,
"integrity"
:
"sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig=="
,
"requires"
:
{
"bytes"
:
"3.1.2"
,
"http-errors"
:
"2.0.0"
,
"iconv-lite"
:
"0.4.24"
,
"unpipe"
:
"1.0.0"
}
}
}
},
"fill-range"
:
{
...
...
@@ -2108,6 +2400,11 @@
"resolved"
:
"https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
,
"integrity"
:
"sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
},
"isarray"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
,
"integrity"
:
"sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
},
"kareem"
:
{
"version"
:
"2.5.1"
,
"resolved"
:
"https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz"
,
...
...
@@ -2249,6 +2546,30 @@
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
,
"integrity"
:
"sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"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=="
,
"requires"
:
{
"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"
},
"dependencies"
:
{
"mkdirp"
:
{
"version"
:
"0.5.6"
,
"resolved"
:
"https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz"
,
"integrity"
:
"sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw=="
,
"requires"
:
{
"minimist"
:
"^1.2.6"
}
}
}
},
"negotiator"
:
{
"version"
:
"0.6.3"
,
"resolved"
:
"https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz"
,
...
...
@@ -2259,6 +2580,11 @@
"resolved"
:
"https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
,
"integrity"
:
"sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
},
"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=="
},
"object-inspect"
:
{
"version"
:
"1.12.3"
,
"resolved"
:
"https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz"
,
...
...
@@ -2305,6 +2631,11 @@
"resolved"
:
"https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
,
"integrity"
:
"sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
},
"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=="
},
"proxy-addr"
:
{
"version"
:
"2.0.7"
,
"resolved"
:
"https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz"
,
...
...
@@ -2333,9 +2664,9 @@
"integrity"
:
"sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
},
"raw-body"
:
{
"version"
:
"2.5.
1
"
,
"resolved"
:
"https://registry.npmjs.org/raw-body/-/raw-body-2.5.
1
.tgz"
,
"integrity"
:
"sha512-
qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig
=="
,
"version"
:
"2.5.
2
"
,
"resolved"
:
"https://registry.npmjs.org/raw-body/-/raw-body-2.5.
2
.tgz"
,
"integrity"
:
"sha512-
8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA
=="
,
"requires"
:
{
"bytes"
:
"3.1.2"
,
"http-errors"
:
"2.0.0"
,
...
...
@@ -2343,6 +2674,27 @@
"unpipe"
:
"1.0.0"
}
},
"readable-stream"
:
{
"version"
:
"2.3.8"
,
"resolved"
:
"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz"
,
"integrity"
:
"sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="
,
"requires"
:
{
"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"
},
"dependencies"
:
{
"safe-buffer"
:
{
"version"
:
"5.1.2"
,
"resolved"
:
"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
,
"integrity"
:
"sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
}
}
},
"readdirp"
:
{
"version"
:
"3.6.0"
,
"resolved"
:
"https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
,
...
...
@@ -2488,6 +2840,26 @@
"resolved"
:
"https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz"
,
"integrity"
:
"sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
},
"streamsearch"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz"
,
"integrity"
:
"sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg=="
},
"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=="
,
"requires"
:
{
"safe-buffer"
:
"~5.1.0"
},
"dependencies"
:
{
"safe-buffer"
:
{
"version"
:
"5.1.2"
,
"resolved"
:
"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
,
"integrity"
:
"sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
}
}
},
"strip-bom"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz"
,
...
...
@@ -2586,6 +2958,11 @@
"mime-types"
:
"~2.1.24"
}
},
"typedarray"
:
{
"version"
:
"0.0.6"
,
"resolved"
:
"https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
,
"integrity"
:
"sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
},
"typescript"
:
{
"version"
:
"4.9.5"
,
"resolved"
:
"https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz"
,
...
...
@@ -2597,6 +2974,11 @@
"resolved"
:
"https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
,
"integrity"
:
"sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
},
"util-deprecate"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
,
"integrity"
:
"sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"utils-merge"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"
,
...
...
backend/package.json
View file @
a0e4c63e
...
...
@@ -11,13 +11,19 @@
"license"
:
"ISC"
,
"dependencies"
:
{
"@types/node"
:
"^18.15.3"
,
"body-parser"
:
"^1.20.2"
,
"cors"
:
"^2.8.5"
,
"dotenv"
:
"^16.0.3"
,
"express"
:
"^4.18.2"
,
"mongoose"
:
"^7.0.1"
,
"multer"
:
"^1.4.5-lts.1"
,
"ts-node-dev"
:
"^2.0.0"
},
"devDependencies"
:
{
"@types/body-parser"
:
"^1.19.2"
,
"@types/cors"
:
"^2.8.13"
,
"@types/express"
:
"^4.17.17"
,
"@types/mongoose"
:
"^5.11.97"
"@types/mongoose"
:
"^5.11.97"
,
"@types/multer"
:
"^1.4.7"
}
}
}
\ No newline at end of file
backend/src/index.ts
View file @
a0e4c63e
import
express
,
{
Express
,
json
}
from
'express'
;
import
mongoose
from
'mongoose'
;
import
'dotenv/config'
;
import
{
artistRouter
}
from
'./routes/artist'
;
import
cors
from
'cors'
;
const
app
:
Express
=
express
();
app
.
use
(
json
());
app
.
use
(
cors
());
app
.
use
(
'/artists'
,
artistRouter
);
app
.
listen
(
process
.
env
.
PORT
,
()
=>
{
console
.
log
(
'Server started on port '
+
process
.
env
.
PORT
);
console
.
log
(
'Server started on port '
+
process
.
env
.
PORT
);
});
backend/src/routes/artist.ts
View file @
a0e4c63e
import
express
,
{
Request
,
Response
}
from
'express'
;
import
{
model
,
Schema
,
connect
,
Document
,
HydratedDocument
}
from
'mongoose'
;
import
{
model
,
Schema
,
connect
,
HydratedDocument
}
from
'mongoose'
;
import
multer
from
'multer'
;
import
fs
from
'fs'
;
import
path
from
'path'
;
const
upload
=
multer
({
dest
:
'uploads/'
});
const
router
=
express
.
Router
();
interface
IArtist
{
name
:
string
;
image
?
:
File
;
description
:
string
;
name
:
string
;
image
:
File
;
description
:
string
;
}
const
artistSchema
=
new
Schema
<
IArtist
>
({
name
:
{
type
:
String
,
required
:
true
,
},
image
:
{
type
:
Buffer
,
},
description
:
{
type
:
String
,
required
:
true
,
},
name
:
{
type
:
String
,
required
:
true
,
},
image
:
{
data
:
Buffer
,
contentType
:
String
,
},
description
:
{
type
:
String
,
required
:
true
,
},
});
const
Artist
=
model
<
IArtist
>
(
'Artist'
,
artistSchema
);
const
run
=
async
()
=>
{
await
connect
(
`
${
process
.
env
.
MONGO_URL
}
/artist`
);
await
connect
(
`
${
process
.
env
.
MONGO_URL
}
/artist`
);
};
run
().
catch
((
err
)
=>
console
.
log
(
err
));
router
.
get
(
'/'
,
(
req
:
Request
,
res
:
Response
)
=>
{
return
res
.
send
(
'Hello'
);
router
.
get
(
'/'
,
async
(
req
:
Request
,
res
:
Response
)
=>
{
const
artists
=
await
Artist
.
find
();
res
.
send
(
artists
);
});
router
.
post
(
'/'
,
async
(
req
:
Request
,
res
:
Response
)
=>
{
const
artist
:
HydratedDocument
<
IArtist
>
=
new
Artist
({
name
:
req
.
body
.
name
,
description
:
req
.
body
.
description
,
});
await
artist
.
save
();
res
.
send
(
artist
);
});
router
.
post
(
'/'
,
upload
.
single
(
'image'
),
async
(
req
:
Request
,
res
:
Response
)
=>
{
const
artist
:
HydratedDocument
<
IArtist
>
=
new
Artist
({
name
:
req
.
body
.
name
,
description
:
req
.
body
.
description
,
image
:
{
data
:
fs
.
readFileSync
(
path
.
join
(
'uploads/'
+
req
.
file
?.
filename
)),
contentType
:
'image'
,
},
});
await
artist
.
save
();
res
.
send
(
'Sucessfully saved'
);
}
);
export
{
router
as
artistRouter
};
backend/uploads/504fb468410c009000968b276ae8f92a
0 → 100644
View file @
a0e4c63e
File added
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment