Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
S
shop-api-js5
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
Vadim
shop-api-js5
Commits
9996b974
Commit
9996b974
authored
Dec 21, 2020
by
Vadim
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
конец занятия №81
parent
4481e41e
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
290 additions
and
24 deletions
+290
-24
fileDb.js
app/db/fileDb.js
+3
-0
mongoDB.js
app/db/mongoDB.js
+20
-0
Products.js
app/models/Products.js
+22
-0
products.js
app/products.js
+23
-8
package-lock.json
package-lock.json
+211
-4
package.json
package.json
+2
-0
server.js
server.js
+9
-12
No files found.
app/db/fileDb.js
View file @
9996b974
...
...
@@ -12,6 +12,9 @@ module.exports = {
console
.
error
(
e
);
data
=
[]
}
},
getItem
(
id
){
},
getItems
()
{
return
data
;
...
...
app/db/mongoDB.js
0 → 100644
View file @
9996b974
const
MongoClient
=
require
(
'mongodb'
).
MongoClient
;
let
db
=
null
;
let
client
=
null
;
const
connect
=
async
()
=>
{
client
=
await
MongoClient
.
connect
(
"mongodb://localhost"
);
db
=
client
.
db
(
'shop'
)
};
const
disconnect
=
async
()
=>
{
await
client
.
disconnect
();
};
module
.
exports
=
{
connect
,
disconnect
,
getDb
:
()
=>
db
};
\ No newline at end of file
app/models/Products.js
0 → 100644
View file @
9996b974
const
mongoose
=
require
(
'mongoose'
);
const
Schema
=
mongoose
.
Schema
;
const
ProductSchema
=
new
Schema
({
title
:
{
type
:
String
,
required
:
true
},
price
:
{
type
:
Number
,
required
:
true
},
description
:
String
,
image
:
String
},
{
versionKey
:
false
});
const
Product
=
mongoose
.
model
(
'Product'
,
ProductSchema
);
module
.
exports
=
Product
;
app/products.js
View file @
9996b974
...
...
@@ -4,6 +4,7 @@ const path = require('path');
const
router
=
express
.
Router
();
const
{
nanoid
}
=
require
(
'nanoid'
);
const
config
=
require
(
'./config'
);
const
Product
=
require
(
'./models/Products'
);
const
storage
=
multer
.
diskStorage
({
destination
:
(
req
,
file
,
cb
)
=>
{
...
...
@@ -15,25 +16,39 @@ const config = require('./config');
});
const
upload
=
multer
({
storage
});
const
createRouter
=
(
db
)
=>
{
const
createRouter
=
()
=>
{
router
.
get
(
'/'
,
async
(
req
,
res
)
=>
{
try
{
const
products
=
await
Product
.
find
();
res
.
send
(
products
);
}
catch
(
e
)
{
res
.
status
(
500
).
send
(
e
);
}
const
products
=
await
db
.
getItems
(
'products'
);
res
.
send
(
products
);
});
router
.
get
(
'/:id'
,
async
(
req
,
res
)
=>
{
const
product
=
await
db
.
getItem
(
'products'
,
req
.
params
.
id
);
res
.
send
(
product
[
0
]);
try
{
const
result
=
await
Product
.
findById
(
req
.
params
.
id
);
res
.
send
(
result
);
}
catch
(
e
)
{
res
.
sendStatus
(
404
);
}
});
router
.
post
(
'/'
,
upload
.
single
(
'image'
),
async
(
req
,
res
)
=>
{
const
product
=
req
.
body
;
const
product
=
new
Product
(
req
.
body
)
;
if
(
req
.
file
)
{
product
.
image
=
req
.
file
.
filename
;
}
const
newProduct
=
await
db
.
addItem
(
'products'
,
product
);
res
.
send
(
newProduct
);
try
{
await
product
.
save
();
res
.
send
(
product
);
}
catch
(
e
)
{
res
.
status
(
500
).
send
(
e
);
}
});
return
router
;
...
...
package-lock.json
View file @
9996b974
...
...
@@ -19,6 +19,28 @@
"defer-to-connect"
:
"^1.0.1"
}
},
"@types/bson"
:
{
"version"
:
"4.0.3"
,
"resolved"
:
"https://registry.npmjs.org/@types/bson/-/bson-4.0.3.tgz"
,
"integrity"
:
"sha512-mVRvYnTOZJz3ccpxhr3wgxVmSeiYinW+zlzQz3SXWaJmD1DuL05Jeq7nKw3SnbKmbleW5qrLG5vdyWe/A9sXhw=="
,
"requires"
:
{
"@types/node"
:
"*"
}
},
"@types/mongodb"
:
{
"version"
:
"3.6.3"
,
"resolved"
:
"https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.3.tgz"
,
"integrity"
:
"sha512-6YNqGP1hk5bjUFaim+QoFFuI61WjHiHE1BNeB41TA00Xd2K7zG4lcWyLLq/XtIp36uMavvS5hoAUJ+1u/GcX2Q=="
,
"requires"
:
{
"@types/bson"
:
"*"
,
"@types/node"
:
"*"
}
},
"@types/node"
:
{
"version"
:
"14.14.14"
,
"resolved"
:
"https://registry.npmjs.org/@types/node/-/node-14.14.14.tgz"
,
"integrity"
:
"sha512-UHnOPWVWV1z+VV8k6L1HhG7UbGBgIdghqF3l9Ny9ApPghbjICXkUJSd/b9gOgQfjM1r+37cipdw/HJ3F6ICEnQ=="
},
"abbrev"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"
,
...
...
@@ -108,6 +130,49 @@
"integrity"
:
"sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ=="
,
"dev"
:
true
},
"bl"
:
{
"version"
:
"2.2.1"
,
"resolved"
:
"https://registry.npmjs.org/bl/-/bl-2.2.1.tgz"
,
"integrity"
:
"sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g=="
,
"requires"
:
{
"readable-stream"
:
"^2.3.5"
,
"safe-buffer"
:
"^5.1.1"
},
"dependencies"
:
{
"isarray"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
,
"integrity"
:
"sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"readable-stream"
:
{
"version"
:
"2.3.7"
,
"resolved"
:
"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"
,
"integrity"
:
"sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw=="
,
"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"
}
},
"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"
}
}
}
},
"bluebird"
:
{
"version"
:
"3.5.1"
,
"resolved"
:
"https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz"
,
"integrity"
:
"sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
},
"body-parser"
:
{
"version"
:
"1.19.0"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz"
,
...
...
@@ -175,6 +240,11 @@
"fill-range"
:
"^7.0.1"
}
},
"bson"
:
{
"version"
:
"1.1.5"
,
"resolved"
:
"https://registry.npmjs.org/bson/-/bson-1.1.5.tgz"
,
"integrity"
:
"sha512-kDuEzldR21lHciPQAIulLs1LZlCXdLziXI6Mb/TDkwXhb//UORJNPXgcRs2CuO4H0DcMkpfT3/ySsP3unoZjBg=="
},
"buffer-from"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz"
,
...
...
@@ -444,6 +514,11 @@
"integrity"
:
"sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
,
"dev"
:
true
},
"denque"
:
{
"version"
:
"1.4.1"
,
"resolved"
:
"https://registry.npmjs.org/denque/-/denque-1.4.1.tgz"
,
"integrity"
:
"sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ=="
},
"depd"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
,
...
...
@@ -846,6 +921,11 @@
"integrity"
:
"sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
,
"dev"
:
true
},
"kareem"
:
{
"version"
:
"2.3.2"
,
"resolved"
:
"https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz"
,
"integrity"
:
"sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ=="
},
"keyv"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz"
,
...
...
@@ -892,6 +972,12 @@
"resolved"
:
"https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
,
"integrity"
:
"sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
"memory-pager"
:
{
"version"
:
"1.5.0"
,
"resolved"
:
"https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz"
,
"integrity"
:
"sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg=="
,
"optional"
:
true
},
"merge-descriptors"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
,
...
...
@@ -948,11 +1034,86 @@
"minimist"
:
"^1.2.5"
}
},
"mongodb"
:
{
"version"
:
"3.6.3"
,
"resolved"
:
"https://registry.npmjs.org/mongodb/-/mongodb-3.6.3.tgz"
,
"integrity"
:
"sha512-rOZuR0QkodZiM+UbQE5kDsJykBqWi0CL4Ec2i1nrGrUI3KO11r6Fbxskqmq3JK2NH7aW4dcccBuUujAP0ERl5w=="
,
"requires"
:
{
"bl"
:
"^2.2.1"
,
"bson"
:
"^1.1.4"
,
"denque"
:
"^1.4.1"
,
"require_optional"
:
"^1.0.1"
,
"safe-buffer"
:
"^5.1.2"
,
"saslprep"
:
"^1.0.0"
}
},
"mongoose"
:
{
"version"
:
"5.11.8"
,
"resolved"
:
"https://registry.npmjs.org/mongoose/-/mongoose-5.11.8.tgz"
,
"integrity"
:
"sha512-RRfrYLg7pyuyx7xu5hwadjIZZJB9W2jqIMkL1CkTmk/uOCX3MX2tl4BVIi2rJUtgMNwn6dy3wBD3soB8I9Nlog=="
,
"requires"
:
{
"@types/mongodb"
:
"^3.5.27"
,
"bson"
:
"^1.1.4"
,
"kareem"
:
"2.3.2"
,
"mongodb"
:
"3.6.3"
,
"mongoose-legacy-pluralize"
:
"1.0.2"
,
"mpath"
:
"0.8.1"
,
"mquery"
:
"3.2.3"
,
"ms"
:
"2.1.2"
,
"regexp-clone"
:
"1.0.0"
,
"safe-buffer"
:
"5.2.1"
,
"sift"
:
"7.0.1"
,
"sliced"
:
"1.0.1"
},
"dependencies"
:
{
"safe-buffer"
:
{
"version"
:
"5.2.1"
,
"resolved"
:
"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
,
"integrity"
:
"sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
}
}
},
"mongoose-legacy-pluralize"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz"
,
"integrity"
:
"sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
},
"mpath"
:
{
"version"
:
"0.8.1"
,
"resolved"
:
"https://registry.npmjs.org/mpath/-/mpath-0.8.1.tgz"
,
"integrity"
:
"sha512-norEinle9aFc05McBawVPwqgFZ7npkts9yu17ztIVLwPwO9rq0OTp89kGVTqvv5rNLMz96E5iWHpVORjI411vA=="
},
"mquery"
:
{
"version"
:
"3.2.3"
,
"resolved"
:
"https://registry.npmjs.org/mquery/-/mquery-3.2.3.tgz"
,
"integrity"
:
"sha512-cIfbP4TyMYX+SkaQ2MntD+F2XbqaBHUYWk3j+kqdDztPWok3tgyssOZxMHMtzbV1w9DaSlvEea0Iocuro41A4g=="
,
"requires"
:
{
"bluebird"
:
"3.5.1"
,
"debug"
:
"3.1.0"
,
"regexp-clone"
:
"^1.0.0"
,
"safe-buffer"
:
"5.1.2"
,
"sliced"
:
"1.0.1"
},
"dependencies"
:
{
"debug"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-3.1.0.tgz"
,
"integrity"
:
"sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g=="
,
"requires"
:
{
"ms"
:
"2.0.0"
}
},
"ms"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
,
"integrity"
:
"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}
}
},
"ms"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
"integrity"
:
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
,
"dev"
:
true
"integrity"
:
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"multer"
:
{
"version"
:
"1.4.2"
,
...
...
@@ -1220,6 +1381,11 @@
"picomatch"
:
"^2.2.1"
}
},
"regexp-clone"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz"
,
"integrity"
:
"sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw=="
},
"registry-auth-token"
:
{
"version"
:
"4.2.1"
,
"resolved"
:
"https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz"
,
...
...
@@ -1238,6 +1404,20 @@
"rc"
:
"^1.2.8"
}
},
"require_optional"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz"
,
"integrity"
:
"sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g=="
,
"requires"
:
{
"resolve-from"
:
"^2.0.0"
,
"semver"
:
"^5.1.0"
}
},
"resolve-from"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz"
,
"integrity"
:
"sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
},
"responselike"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz"
,
...
...
@@ -1257,11 +1437,19 @@
"resolved"
:
"https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
,
"integrity"
:
"sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"saslprep"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz"
,
"integrity"
:
"sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag=="
,
"optional"
:
true
,
"requires"
:
{
"sparse-bitfield"
:
"^3.0.3"
}
},
"semver"
:
{
"version"
:
"5.7.1"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
,
"integrity"
:
"sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
,
"dev"
:
true
"integrity"
:
"sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
},
"semver-diff"
:
{
"version"
:
"3.1.1"
,
...
...
@@ -1338,12 +1526,31 @@
"resolved"
:
"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"
,
"integrity"
:
"sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
},
"sift"
:
{
"version"
:
"7.0.1"
,
"resolved"
:
"https://registry.npmjs.org/sift/-/sift-7.0.1.tgz"
,
"integrity"
:
"sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g=="
},
"signal-exit"
:
{
"version"
:
"3.0.3"
,
"resolved"
:
"https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz"
,
"integrity"
:
"sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
,
"dev"
:
true
},
"sliced"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz"
,
"integrity"
:
"sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
},
"sparse-bitfield"
:
{
"version"
:
"3.0.3"
,
"resolved"
:
"https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz"
,
"integrity"
:
"sha1-/0rm5oZWBWuks+eSqzM004JzyhE="
,
"optional"
:
true
,
"requires"
:
{
"memory-pager"
:
"^1.0.2"
}
},
"sqlstring"
:
{
"version"
:
"2.3.1"
,
"resolved"
:
"https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz"
,
...
...
package.json
View file @
9996b974
...
...
@@ -12,6 +12,8 @@
"dependencies"
:
{
"
cors
"
:
"^2.8.5"
,
"
express
"
:
"^4.17.1"
,
"
mongodb
"
:
"^3.6.3"
,
"
mongoose
"
:
"^5.11.8"
,
"
multer
"
:
"^1.4.2"
,
"
mysql
"
:
"^2.18.1"
,
"
nanoid
"
:
"^3.1.18"
...
...
server.js
View file @
9996b974
const
express
=
require
(
'express'
);
const
products
=
require
(
'./app/products'
);
const
cors
=
require
(
'cors'
);
const
mysql
=
require
(
'mysql'
);
const
config
=
require
(
'./app/config'
);
const
db
=
require
(
'./app/db/mysql'
);
const
mongoose
=
require
(
'mongoose'
);
const
app
=
express
();
const
port
=
8000
;
const
connection
=
mysql
.
createConnection
(
config
.
db
);
const
corsOptions
=
{
origin
:
'http://localhost:3000'
,
...
...
@@ -20,16 +17,16 @@ app.use(express.json());
app
.
use
(
express
.
static
(
'public'
));
connection
.
connect
(
err
=>
{
if
(
err
){
console
.
error
(
err
);
throw
err
;
}
app
.
use
(
'/products'
,
products
(
db
(
connection
)));
const
run
=
async
()
=>
{
await
mongoose
.
connect
(
"mongodb://localhost/shop"
,
{
useNewUrlParser
:
true
});
app
.
use
(
'/products'
,
products
());
app
.
listen
(
port
,
()
=>
{
console
.
log
(
`Server started on port
${
port
}
`
)
});
console
.
log
(
'mysql connected!'
);
});
console
.
log
(
'mongo connected!'
);
};
run
().
catch
(
console
.
log
);
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