From 1e8154dab431c71b53213742747186e1b6b4c4bb Mon Sep 17 00:00:00 2001 From: Aman-codde <78620905+Aman-codde@users.noreply.github.com> Date: Tue, 21 Sep 2021 21:32:00 -0700 Subject: [PATCH 1/9] feat(server,mongoose): add mongoose --- package-lock.json | 193 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 1 + 2 files changed, 192 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8576f71..6a55cba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -388,8 +388,7 @@ "@types/node": { "version": "15.14.9", "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", - "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", - "dev": true + "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==" }, "@types/normalize-package-data": { "version": "2.4.1", @@ -428,6 +427,20 @@ "socket.io-client": "*" } }, + "@types/webidl-conversions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz", + "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q==" + }, + "@types/whatwg-url": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz", + "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==", + "requires": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, "@typescript-eslint/eslint-plugin": { "version": "4.31.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.2.tgz", @@ -696,6 +709,11 @@ "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=" }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, "base64id": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", @@ -816,6 +834,23 @@ "fill-range": "^7.0.1" } }, + "bson": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.5.2.tgz", + "integrity": "sha512-8CEMJpwc7qlQtrn2rney38jQSEeMar847lz0LyitwRmVknAW8iHXrzW4fTjHfyWm0E3sukyD/zppdH+QU1QefA==", + "requires": { + "buffer": "^5.6.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", @@ -1116,6 +1151,11 @@ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, + "denque": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", + "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" + }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -1591,6 +1631,11 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, "ignore": { "version": "5.1.8", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", @@ -1755,6 +1800,11 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "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", @@ -1828,6 +1878,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", @@ -1893,6 +1949,79 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, + "mongodb": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.1.1.tgz", + "integrity": "sha512-fbACrWEyvr6yl0sSiCGV0sqEiBwTtDJ8iSojmkDjAfw9JnOZSAkUyv9seFSPYhPPKwxp1PDtyjvBNfMDz0WBLQ==", + "requires": { + "bson": "^4.5.1", + "denque": "^1.5.0", + "mongodb-connection-string-url": "^2.0.0", + "saslprep": "^1.0.0" + } + }, + "mongodb-connection-string-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.1.0.tgz", + "integrity": "sha512-Qf9Zw7KGiRljWvMrrUFDdVqo46KIEiDuCzvEN97rh/PcKzk2bd6n9KuzEwBwW9xo5glwx69y1mI6s+jFUD/aIQ==", + "requires": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^9.1.0" + } + }, + "mongoose": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.0.7.tgz", + "integrity": "sha512-44STDcV6awu0zfo1Z3NyKPHZwfVrGU93/QgR0gYbt4bik/nEa7lI1RRGcq5oyGM0YE7l63i2j80v1OhvrlFvYw==", + "requires": { + "bson": "^4.2.2", + "kareem": "2.3.2", + "mongodb": "4.1.1", + "mpath": "0.8.4", + "mquery": "4.0.0", + "ms": "2.1.2", + "regexp-clone": "1.0.0", + "sift": "13.5.2", + "sliced": "1.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "mpath": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz", + "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==" + }, + "mquery": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.0.tgz", + "integrity": "sha512-nGjm89lHja+T/b8cybAby6H0YgA4qYC/lx6UlwvHGqvTq8bDaNeCwl1sY8uRELrNbVWJzIihxVd+vphGGn1vBw==", + "requires": { + "debug": "4.x", + "regexp-clone": "^1.0.0", + "sliced": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -2116,6 +2245,11 @@ "once": "^1.3.1" } }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, "pupa": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", @@ -2185,6 +2319,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==" + }, "regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", @@ -2268,6 +2407,15 @@ "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": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -2337,6 +2485,11 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, + "sift": { + "version": "13.5.2", + "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz", + "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" + }, "signal-exit": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.4.tgz", @@ -2349,6 +2502,11 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, + "sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + }, "socket.io": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.2.0.tgz", @@ -2453,6 +2611,15 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, + "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" + } + }, "spawn-command": { "version": "0.0.2-1", "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", @@ -2572,6 +2739,14 @@ "nopt": "~1.0.10" } }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "requires": { + "punycode": "^2.1.1" + } + }, "tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -2767,6 +2942,20 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + }, + "whatwg-url": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-9.1.0.tgz", + "integrity": "sha512-CQ0UcrPHyomtlOCot1TL77WyMIm/bCwrJ2D6AOKGwEczU9EpyoqAokfqrf/MioU9kHcMsmJZcg1egXix2KYEsA==", + "requires": { + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", diff --git a/package.json b/package.json index 28d1c53..e075ffb 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ }, "dependencies": { "express": "^4.17.1", + "mongoose": "^6.0.7", "socket.io": "^4.1.2" }, "devDependencies": { From 95fe53382cc32f5a5f47ba324321a19cb4efb112 Mon Sep 17 00:00:00 2001 From: Aman-codde <78620905+Aman-codde@users.noreply.github.com> Date: Tue, 21 Sep 2021 21:37:59 -0700 Subject: [PATCH 2/9] feat(server,mongoose): add types/mongoose to npm --- package-lock.json | 9 +++++++++ package.json | 1 + 2 files changed, 10 insertions(+) diff --git a/package-lock.json b/package-lock.json index 6a55cba..01ae196 100644 --- a/package-lock.json +++ b/package-lock.json @@ -385,6 +385,15 @@ "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", "dev": true }, + "@types/mongoose": { + "version": "5.11.97", + "resolved": "https://registry.npmjs.org/@types/mongoose/-/mongoose-5.11.97.tgz", + "integrity": "sha512-cqwOVYT3qXyLiGw7ueU2kX9noE8DPGRY6z8eUxudhXY8NZ7DMKYAxyZkLSevGfhCX3dO/AoX5/SO9lAzfjon0Q==", + "dev": true, + "requires": { + "mongoose": "*" + } + }, "@types/node": { "version": "15.14.9", "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", diff --git a/package.json b/package.json index e075ffb..3780ea1 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "devDependencies": { "@babel/preset-typescript": "^7.14.5", "@types/express": "^4.17.12", + "@types/mongoose": "^5.11.97", "@types/node": "^15.12.2", "@types/socket.io-client": "^3.0.0", "@typescript-eslint/eslint-plugin": "^4.26.1", From 3f15ab1356bf1ff52820b916c081c15905b1f518 Mon Sep 17 00:00:00 2001 From: Aman-codde <78620905+Aman-codde@users.noreply.github.com> Date: Tue, 21 Sep 2021 22:55:52 -0700 Subject: [PATCH 3/9] feat(server,mongoose): add server.ts ,user.schema.ts --- src/server/schemas/user.schema.ts | 18 ++++++++++++++++++ src/server/server.ts | 28 ++++++++++++++++++++++++++-- 2 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 src/server/schemas/user.schema.ts diff --git a/src/server/schemas/user.schema.ts b/src/server/schemas/user.schema.ts new file mode 100644 index 0000000..5193128 --- /dev/null +++ b/src/server/schemas/user.schema.ts @@ -0,0 +1,18 @@ +import mongoose from 'mongoose'; + +const {Schema, model} = mongoose; +interface User { + name: string; + email: string; + avatar?: string; +} + +// Create a schema corresponding to the document interface +const userSchema = new Schema({ + name: {type: String, required: true}, + email:{type: String, required: true}, + avatar: String +}); + +// Create a model +export const UserModel = model('User', userSchema); \ No newline at end of file diff --git a/src/server/server.ts b/src/server/server.ts index 637d16b..b9a2344 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -2,6 +2,9 @@ import express from 'express'; import cors from 'cors'; import fs from 'fs'; import path from 'path'; +import mongoose from 'mongoose'; +import { UserModel } from './schemas/user.schema.js'; + const app = express(); const __dirname = path.resolve(); @@ -10,15 +13,36 @@ const PORT = 3501; app.use(cors()); +const user = new UserModel({ + name: 'aman', + email: 'amankaur212@gmail.com' +}); + +user.save().then(user => { + console.log(user, 'saved'); +}) + + + +mongoose.connect('mongodb://localhost:27017/fullStack').then +( () => { + console.log('Successfully connected to database'); +}).catch( err => console.log('Error connecting to database')); + + app.get('/', function(req, res) { res.json({message:'test'}); }); app.get('/users', function(req,res){ - res.sendFile(path.join(__dirname, 'users.json')); + //res.sendFile(path.join(__dirname, 'users.json')); + UserModel.find().then(users => { + console.log('found users', users); + res.json({data: users}); + }) }); app.listen(PORT, function(){ - console.log( `starting at localhost http://localhost: ${PORT}`); + console.log( `starting at localhost http://localhost:${PORT}`); }) From 8f8810f5e919f58a527abfd12e373bd5be659d00 Mon Sep 17 00:00:00 2001 From: Aman-codde <78620905+Aman-codde@users.noreply.github.com> Date: Wed, 22 Sep 2021 07:19:41 -0700 Subject: [PATCH 4/9] feat(angular): get list of users from angular to Http --- src/client/src/app/app.component.html | 6 ++++- src/client/src/app/app.component.ts | 20 +++++++++++++++++ src/client/src/app/models/user.ts | 7 ++++++ src/client/src/app/services/user.service.ts | 9 ++++++++ src/server/server.ts | 25 +++++++++++++++------ 5 files changed, 59 insertions(+), 8 deletions(-) create mode 100644 src/client/src/app/models/user.ts create mode 100644 src/client/src/app/services/user.service.ts diff --git a/src/client/src/app/app.component.html b/src/client/src/app/app.component.html index 25c25d5..c842d41 100644 --- a/src/client/src/app/app.component.html +++ b/src/client/src/app/app.component.html @@ -1 +1,5 @@ -{{title}} \ No newline at end of file +{{title}} + +{{users$ | async | json}} + + diff --git a/src/client/src/app/app.component.ts b/src/client/src/app/app.component.ts index 01ec8e2..c5bbc90 100644 --- a/src/client/src/app/app.component.ts +++ b/src/client/src/app/app.component.ts @@ -1,4 +1,7 @@ import { Component } from '@angular/core'; +import { Observable, of } from 'rxjs'; +import { User } from './models/user'; +import { ApiService } from './services/api.service'; @Component({ selector: 'app-root', @@ -7,4 +10,21 @@ import { Component } from '@angular/core'; }) export class AppComponent { title = 'client'; + users$! : Observable; + + constructor(private api: ApiService) + { + this.getAllUsers(); + } + + getAllUsers() { + this.api.get('users').subscribe((users) => { + this.users$ = of(users) ; + console.log(users); + }); + } + + postUser() { + + } } diff --git a/src/client/src/app/models/user.ts b/src/client/src/app/models/user.ts new file mode 100644 index 0000000..3bd5e33 --- /dev/null +++ b/src/client/src/app/models/user.ts @@ -0,0 +1,7 @@ +export class User { + constructor( + public name: string, + public email: string + ) + { } +} diff --git a/src/client/src/app/services/user.service.ts b/src/client/src/app/services/user.service.ts new file mode 100644 index 0000000..3569db9 --- /dev/null +++ b/src/client/src/app/services/user.service.ts @@ -0,0 +1,9 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class UserService { + + constructor() { } +} diff --git a/src/server/server.ts b/src/server/server.ts index b9a2344..e10c36d 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -12,15 +12,26 @@ const PORT = 3501; app.use(cors()); +app.get('/create-user', function(req, res){ + const user = new UserModel({ + name: 'kim', + email: 'kim392@gmail.com' + }); + + // user.save().then(userr => { + // console.log(userr, 'saved'); + // res.json({data: userr}) + // }) +}) -const user = new UserModel({ - name: 'aman', - email: 'amankaur212@gmail.com' -}); +// const user = new UserModel({ +// name: 'kim', +// email: 'kim392@gmail.com' +// }); -user.save().then(user => { - console.log(user, 'saved'); -}) +// user.save().then(user => { +// console.log(user, 'saved'); +// }) From d6beba1dc34e4d93454f0792b89ad56b3261d607 Mon Sep 17 00:00:00 2001 From: Aman-codde <78620905+Aman-codde@users.noreply.github.com> Date: Wed, 22 Sep 2021 15:35:11 -0700 Subject: [PATCH 5/9] docs:(tscofig.json) exclude client --- tsconfig.json | 1 + 1 file changed, 1 insertion(+) diff --git a/tsconfig.json b/tsconfig.json index 7d253b7..55947c0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,6 +4,7 @@ "src/shared/**/*" ], "exclude": [ + "src/client/**/*", "node_modules/*", "public/*" ], From e45fc80db99c9826208ce1d19ea4f053660547e1 Mon Sep 17 00:00:00 2001 From: Aman-codde <78620905+Aman-codde@users.noreply.github.com> Date: Wed, 22 Sep 2021 15:36:49 -0700 Subject: [PATCH 6/9] feat(server,route):add app.posts --- src/client/src/app/app.component.html | 3 ++ src/client/src/app/app.component.ts | 2 +- src/server/server.ts | 71 +++++++++++++++++---------- 3 files changed, 49 insertions(+), 27 deletions(-) diff --git a/src/client/src/app/app.component.html b/src/client/src/app/app.component.html index c842d41..289844f 100644 --- a/src/client/src/app/app.component.html +++ b/src/client/src/app/app.component.html @@ -3,3 +3,6 @@ {{users$ | async | json}} + + + \ No newline at end of file diff --git a/src/client/src/app/app.component.ts b/src/client/src/app/app.component.ts index c5bbc90..6bc6b83 100644 --- a/src/client/src/app/app.component.ts +++ b/src/client/src/app/app.component.ts @@ -24,7 +24,7 @@ export class AppComponent { }); } - postUser() { + postUser(nam:string, eml: string) { } } diff --git a/src/server/server.ts b/src/server/server.ts index e10c36d..bdbd083 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -1,6 +1,5 @@ import express from 'express'; import cors from 'cors'; -import fs from 'fs'; import path from 'path'; import mongoose from 'mongoose'; import { UserModel } from './schemas/user.schema.js'; @@ -10,37 +9,15 @@ const app = express(); const __dirname = path.resolve(); const PORT = 3501; -app.use(cors()); - -app.get('/create-user', function(req, res){ - const user = new UserModel({ - name: 'kim', - email: 'kim392@gmail.com' - }); - - // user.save().then(userr => { - // console.log(userr, 'saved'); - // res.json({data: userr}) - // }) -}) - -// const user = new UserModel({ -// name: 'kim', -// email: 'kim392@gmail.com' -// }); - -// user.save().then(user => { -// console.log(user, 'saved'); -// }) - - - mongoose.connect('mongodb://localhost:27017/fullStack').then ( () => { console.log('Successfully connected to database'); }).catch( err => console.log('Error connecting to database')); +app.use(cors()); +app.use(express.json()); + app.get('/', function(req, res) { res.json({message:'test'}); }); @@ -50,6 +27,26 @@ app.get('/users', function(req,res){ UserModel.find().then(users => { console.log('found users', users); res.json({data: users}); + }).catch( err => { + res.status(501); + res.json({errors: err}) + }) +}); + +app.post('/create-user', function(req,res){ + const {name,email} = req.body; + const user = new UserModel({ + //name: req.body.name + name, + email, + }); + user.save() + .then((data) => { + res.json({data}); + }) + .catch(err => { + res.json(501); + res.json({errors: err}) }) }); @@ -57,3 +54,25 @@ app.get('/users', function(req,res){ app.listen(PORT, function(){ console.log( `starting at localhost http://localhost:${PORT}`); }) + + +// app.get('/create-user', function(req, res){ +// const newUser = { +// name: '', email: '' +// } +// const user = new UserModel({newUser}); + +// // user.save().then(userr => { +// // console.log(userr, 'saved'); +// // res.json({data: userr}) +// // }) +// }) + +// // const user = new UserModel({ +// // name: 'kim', +// // email: 'kim392@gmail.com' +// // }); + +// // user.save().then(user => { +// // console.log(user, 'saved'); +// // }) \ No newline at end of file From d3c30f56910645633f4e0f55718243765794b1cd Mon Sep 17 00:00:00 2001 From: Aman-codde <78620905+Aman-codde@users.noreply.github.com> Date: Thu, 23 Sep 2021 09:44:47 -0700 Subject: [PATCH 7/9] feat(server): add post route for users --- src/server/server.ts | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/src/server/server.ts b/src/server/server.ts index bdbd083..2716c0b 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -28,8 +28,11 @@ app.get('/users', function(req,res){ console.log('found users', users); res.json({data: users}); }).catch( err => { - res.status(501); - res.json({errors: err}) + //res.status(501); + //res.json({errors: err}); + //It can be written as: + res.status(501).json({errors: err}); + }) }); @@ -42,11 +45,12 @@ app.post('/create-user', function(req,res){ }); user.save() .then((data) => { + console.log(data, 'saved'); res.json({data}); }) .catch(err => { - res.json(501); - res.json({errors: err}) + res.status(501).json({errors: err}); + //res.json({errors: err}) }) }); @@ -56,23 +60,3 @@ app.listen(PORT, function(){ }) -// app.get('/create-user', function(req, res){ -// const newUser = { -// name: '', email: '' -// } -// const user = new UserModel({newUser}); - -// // user.save().then(userr => { -// // console.log(userr, 'saved'); -// // res.json({data: userr}) -// // }) -// }) - -// // const user = new UserModel({ -// // name: 'kim', -// // email: 'kim392@gmail.com' -// // }); - -// // user.save().then(user => { -// // console.log(user, 'saved'); -// // }) \ No newline at end of file From 5759d6a93382c454251d5b43c9ae66f922982392 Mon Sep 17 00:00:00 2001 From: Aman-codde <78620905+Aman-codde@users.noreply.github.com> Date: Thu, 23 Sep 2021 10:00:08 -0700 Subject: [PATCH 8/9] feat(server,schema): add post schema --- src/server/schemas/post.schema.ts | 14 ++++++++++++++ src/server/server.ts | 4 ---- 2 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 src/server/schemas/post.schema.ts diff --git a/src/server/schemas/post.schema.ts b/src/server/schemas/post.schema.ts new file mode 100644 index 0000000..ac971dc --- /dev/null +++ b/src/server/schemas/post.schema.ts @@ -0,0 +1,14 @@ +import mongoose from 'mongoose'; + + +interface Post { + title: string, + body: string +} + +const PostSchema = new mongoose.Schema({ + title: {type: String, required: true}, + body: {type: String, required: true} +}); + +export const PostModel = mongoose.model('Post', PostSchema); diff --git a/src/server/server.ts b/src/server/server.ts index 2716c0b..8d2276d 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -23,14 +23,10 @@ app.get('/', function(req, res) { }); app.get('/users', function(req,res){ - //res.sendFile(path.join(__dirname, 'users.json')); UserModel.find().then(users => { console.log('found users', users); res.json({data: users}); }).catch( err => { - //res.status(501); - //res.json({errors: err}); - //It can be written as: res.status(501).json({errors: err}); }) From 2673ec7df2e62c1e579f49d9404fa886bc5eaaf2 Mon Sep 17 00:00:00 2001 From: Aman-codde <78620905+Aman-codde@users.noreply.github.com> Date: Thu, 23 Sep 2021 14:09:50 -0700 Subject: [PATCH 9/9] feat(server): import PostModel --- src/server/server.ts | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/server/server.ts b/src/server/server.ts index 8d2276d..d5e159b 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -3,6 +3,7 @@ import cors from 'cors'; import path from 'path'; import mongoose from 'mongoose'; import { UserModel } from './schemas/user.schema.js'; +import { PostModel } from './schemas/post.schema.js'; const app = express(); @@ -22,6 +23,7 @@ app.get('/', function(req, res) { res.json({message:'test'}); }); +//Users app.get('/users', function(req,res){ UserModel.find().then(users => { console.log('found users', users); @@ -46,7 +48,32 @@ app.post('/create-user', function(req,res){ }) .catch(err => { res.status(501).json({errors: err}); - //res.json({errors: err}) + }) +}); +// Posts +app.get('/post', function(req,res){ + PostModel.find().then(posts => { + console.log('found posts', posts); + res.json({data: posts}); + }).catch( err => { + res.status(501).json({errors: err}); + + }) +}); + +app.post('/create-post', function(req,res){ + const {body, title} = req.body; + const post = new PostModel({ + body, + title + }); + post.save() + .then((data) => { + console.log(data, 'post saved'); + res.json({data}); + }) + .catch(err => { + res.status(501).json({errors: err}); }) });