diff --git a/package-lock.json b/package-lock.json
index 8576f71..01ae196 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -385,11 +385,19 @@
"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",
- "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 +436,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 +718,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 +843,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 +1160,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 +1640,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 +1809,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 +1887,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 +1958,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 +2254,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 +2328,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 +2416,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 +2494,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 +2511,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 +2620,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 +2748,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 +2951,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..3780ea1 100644
--- a/package.json
+++ b/package.json
@@ -26,11 +26,13 @@
},
"dependencies": {
"express": "^4.17.1",
+ "mongoose": "^6.0.7",
"socket.io": "^4.1.2"
},
"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",
diff --git a/src/client/src/app/app.component.html b/src/client/src/app/app.component.html
index 25c25d5..289844f 100644
--- a/src/client/src/app/app.component.html
+++ b/src/client/src/app/app.component.html
@@ -1 +1,8 @@
-{{title}}
\ No newline at end of file
+{{title}}
+
+{{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 01ec8e2..6bc6b83 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(nam:string, eml: string) {
+
+ }
}
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/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/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..d5e159b 100644
--- a/src/server/server.ts
+++ b/src/server/server.ts
@@ -1,24 +1,85 @@
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';
+import { PostModel } from './schemas/post.schema.js';
+
const app = express();
const __dirname = path.resolve();
const PORT = 3501;
-app.use(cors());
+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'});
});
+//Users
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).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) => {
+ console.log(data, 'saved');
+ res.json({data});
+ })
+ .catch(err => {
+ res.status(501).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});
+ })
});
app.listen(PORT, function(){
- console.log( `starting at localhost http://localhost: ${PORT}`);
+ console.log( `starting at localhost http://localhost:${PORT}`);
})
+
+
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/*"
],