diff --git a/Aufgaben/Aufgabe_11_2020-07-08/client.js b/Aufgaben/Aufgabe_11_2020-07-08/client.js
new file mode 100644
index 0000000..a1e4da7
--- /dev/null
+++ b/Aufgaben/Aufgabe_11_2020-07-08/client.js
@@ -0,0 +1,68 @@
+"use strict";
+//mongodb + srv://AdminForUse:XV8MXEdBYuwXtQnc@ichstudieremitgis-jfrz9.mongodb.net/IchStudiereMitGiS?retryWrites=true&w=majority
+//http://localhost:8100
+//https://theoneandgis.herokuapp.com
+var clientSide;
+(function (clientSide) {
+ document.querySelector("#abschicken").addEventListener("click", sendData);
+ function sendData() {
+ communicate("https://theoneandgis.herokuapp.com", "mongo", "send", "");
+ }
+ document.querySelector("#abfragen").addEventListener("click", retrieveData);
+ function retrieveData() {
+ communicate("https://theoneandgis.herokuapp.com", "mongo", "retrieve", "");
+ }
+ function removeData(_event) {
+ let target = _event.target;
+ /*console.log(target.getAttribute("thisEntry")! );
+ let entry: string = target.getAttribute("thisEntry")!;
+ console.log("entry: ", entry);*/
+ let id = target.getAttribute("thisEntry");
+ communicate("https://theoneandgis.herokuapp.com", "mongo", "remove", id);
+ }
+ async function communicate(_baseUrl, _aim, _task, _id) {
+ let formData = new FormData(document.forms[0]);
+ let url = "";
+ if (_id == "") {
+ //tslint:disable-next-line: no-any
+ let query = new URLSearchParams(formData);
+ url = _baseUrl + "/" + _aim + "/" + _task + "?" + query.toString();
+ }
+ else {
+ url = _baseUrl + "/" + _aim + "/" + _task + "?" + "_id=" + `${_id}`;
+ }
+ let response = await fetch(url);
+ let jsonResponse = await response.json();
+ if (_task == "send") {
+ let jsonString = JSON.stringify(jsonResponse);
+ document.querySelector("#divResponse").innerHTML = jsonString;
+ //console.log(jsonResponse[0].vorname + " " + jsonResponse[0].nachname + " " + jsonResponse[0].geburtsjahr);
+ }
+ if (_task == "retrieve") {
+ let jsonString = formatCollection(jsonResponse);
+ document.querySelector("#divDatabase").innerHTML = jsonString;
+ addRemoveFunction();
+ }
+ document.getElementById("myForm").reset();
+ }
+ function formatCollection(_jsonResponse) {
+ let jsonString = "";
+ for (let index = 0; index <= _jsonResponse.length; index++) {
+ if (_jsonResponse[index]) {
+ jsonString += `
`;
+ let current = _jsonResponse[index];
+ for (let key in current) {
+ jsonString += key + ": " + JSON.stringify(current[key]) + "
";
+ }
+ jsonString += "
";
+ }
+ }
+ return jsonString;
+ }
+ function addRemoveFunction() {
+ let removeButtons = document.querySelectorAll(".removeButton");
+ for (const iterator of removeButtons)
+ iterator.addEventListener("click", removeData);
+ }
+})(clientSide || (clientSide = {}));
+//# sourceMappingURL=client.js.map
\ No newline at end of file
diff --git a/Aufgaben/Aufgabe_11_2020-07-08/client.js.map b/Aufgaben/Aufgabe_11_2020-07-08/client.js.map
new file mode 100644
index 0000000..c56448c
--- /dev/null
+++ b/Aufgaben/Aufgabe_11_2020-07-08/client.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"client.js","sourceRoot":"","sources":["client.ts"],"names":[],"mappings":";AAAA,gIAAgI;AAChI,uBAAuB;AACvB,oCAAoC;AAEpC,IAAU,UAAU,CA+EnB;AA/ED,WAAU,UAAU;IAMI,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC/F,SAAS,QAAQ;QACb,WAAW,CAAC,oCAAoC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IAEmB,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACjG,SAAS,YAAY;QACjB,WAAW,CAAC,oCAAoC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,SAAS,UAAU,CAAC,MAAa;QAC7B,IAAI,MAAM,GAA8B,MAAM,CAAC,MAAO,CAAC;QACvD;;wCAEgC;QAChC,IAAI,EAAE,GAAW,MAAM,CAAC,YAAY,CAAC,WAAW,CAAE,CAAC;QACnD,WAAW,CAAC,oCAAoC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC;IAQD,KAAK,UAAU,WAAW,CAAC,QAAgB,EAAE,IAAY,EAAG,KAAa,EAAE,GAAW;QAClF,IAAI,QAAQ,GAAa,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,GAAG,GAAW,EAAE,CAAC;QACrB,IAAI,GAAG,IAAI,EAAE,EAAE;YACX,kCAAkC;YAClC,IAAI,KAAK,GAAoB,IAAI,eAAe,CAAM,QAAQ,CAAC,CAAC;YAChE,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;SACtE;aAAM;YACH,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC;SACvE;QACD,IAAI,QAAQ,GAAa,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,YAAY,GAAkB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAExD,IAAI,KAAK,IAAI,MAAM,EAAE;YACjB,IAAI,UAAU,GAAW,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACrC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAE,CAAC,SAAS,GAAG,UAAU,CAAC;YAChF,4GAA4G;SAC/G;QACD,IAAI,KAAK,IAAI,UAAU,EAAE;YACrB,IAAI,UAAU,GAAW,gBAAgB,CAAC,YAAY,CAAC,CAAC;YACvC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAE,CAAC,SAAS,GAAG,UAAU,CAAC;YAChF,iBAAiB,EAAE,CAAC;SACvB;QAEiB,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAE,CAAC,KAAK,EAAE,CAAC;IACjE,CAAC;IAED,SAAS,gBAAgB,CAAC,aAA4B;QAClD,IAAI,UAAU,GAAW,EAAE,CAAC;QAC5B,KAAK,IAAI,KAAK,GAAW,CAAC,EAAE,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAChE,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;gBACtB,UAAU,IAAI,0CAA0C,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,8BAA8B,CAAC;gBACjI,IAAI,OAAO,GAA6B,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC7D,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;oBACrB,UAAU,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;iBACpE;gBACD,UAAU,IAAI,MAAM,CAAC;aACxB;SACJ;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,SAAS,iBAAiB;QACtB,IAAI,aAAa,GAAkC,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAC9F,KAAK,MAAM,QAAQ,IAAI,aAAa;YAChC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACvD,CAAC;AAEL,CAAC,EA/ES,UAAU,KAAV,UAAU,QA+EnB"}
\ No newline at end of file
diff --git a/Aufgaben/Aufgabe_11_2020-07-08/client.ts b/Aufgaben/Aufgabe_11_2020-07-08/client.ts
new file mode 100644
index 0000000..fd0ec27
--- /dev/null
+++ b/Aufgaben/Aufgabe_11_2020-07-08/client.ts
@@ -0,0 +1,85 @@
+//mongodb + srv://AdminForUse:XV8MXEdBYuwXtQnc@ichstudieremitgis-jfrz9.mongodb.net/IchStudiereMitGiS?retryWrites=true&w=majority
+//http://localhost:8100
+//https://theoneandgis.herokuapp.com
+
+namespace clientSide {
+
+ interface Personalien {
+ [type: string]: string | string[] | number | undefined;
+ }
+
+ (document.querySelector("#abschicken")).addEventListener("click", sendData);
+ function sendData(): void {
+ communicate("https://theoneandgis.herokuapp.com", "mongo", "send", "");
+ }
+
+ (document.querySelector("#abfragen")).addEventListener("click", retrieveData);
+ function retrieveData(): void {
+ communicate("https://theoneandgis.herokuapp.com", "mongo", "retrieve", "");
+ }
+
+ function removeData(_event: Event): void {
+ let target: HTMLElement = (_event.target);
+ /*console.log(target.getAttribute("thisEntry")! );
+ let entry: string = target.getAttribute("thisEntry")!;
+ console.log("entry: ", entry);*/
+ let id: string = target.getAttribute("thisEntry")!;
+ communicate("https://theoneandgis.herokuapp.com", "mongo", "remove", id);
+ }
+
+ interface Personalien {
+ vorname: string;
+ nachname: string;
+ geburtsjahr: number;
+ }
+
+ async function communicate(_baseUrl: string, _aim: string , _task: string, _id: string): Promise {
+ let formData: FormData = new FormData(document.forms[0]);
+ let url: string = "";
+ if (_id == "") {
+ //tslint:disable-next-line: no-any
+ let query: URLSearchParams = new URLSearchParams(formData);
+ url = _baseUrl + "/" + _aim + "/" + _task + "?" + query.toString();
+ } else {
+ url = _baseUrl + "/" + _aim + "/" + _task + "?" + "_id=" + `${_id}`;
+ }
+ let response: Response = await fetch(url);
+ let jsonResponse: Personalien[] = await response.json();
+
+ if (_task == "send") {
+ let jsonString: string = JSON.stringify(jsonResponse);
+ (document.querySelector("#divResponse")).innerHTML = jsonString;
+ //console.log(jsonResponse[0].vorname + " " + jsonResponse[0].nachname + " " + jsonResponse[0].geburtsjahr);
+ }
+ if (_task == "retrieve") {
+ let jsonString: string = formatCollection(jsonResponse);
+ (document.querySelector("#divDatabase")).innerHTML = jsonString;
+ addRemoveFunction();
+ }
+
+ (document.getElementById("myForm")).reset();
+ }
+
+ function formatCollection(_jsonResponse: Personalien[]): string {
+ let jsonString: string = "";
+ for (let index: number = 0; index <= _jsonResponse.length; index++) {
+ if (_jsonResponse[index]) {
+ jsonString += `
`;
+ let current: Personalien = _jsonResponse[index];
+ for (let key in current) {
+ jsonString += key + ": " + JSON.stringify(current[key]) + "
";
+ }
+ jsonString += "
";
+ }
+ }
+ return jsonString;
+ }
+
+ function addRemoveFunction(): void {
+ let removeButtons: NodeListOf = document.querySelectorAll(".removeButton");
+ for (const iterator of removeButtons)
+ iterator.addEventListener("click", removeData);
+ }
+
+}
+
diff --git a/Aufgaben/Aufgabe_11_2020-07-08/form.html b/Aufgaben/Aufgabe_11_2020-07-08/form.html
new file mode 100644
index 0000000..8111d1b
--- /dev/null
+++ b/Aufgaben/Aufgabe_11_2020-07-08/form.html
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+ Kapitel 11
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Aufgaben/Aufgabe_11_2020-07-08/mongo.js b/Aufgaben/Aufgabe_11_2020-07-08/mongo.js
new file mode 100644
index 0000000..e5c95fe
--- /dev/null
+++ b/Aufgaben/Aufgabe_11_2020-07-08/mongo.js
@@ -0,0 +1,61 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.handleMongo = void 0;
+const Mongo = require("mongodb");
+var handleMongo;
+(function (handleMongo) {
+ let content;
+ let dbUrl = "";
+ function chooseUrl(_whichDB) {
+ if (_whichDB == "local")
+ dbUrl = "mongodb://127.0.0.1:27017/";
+ if (_whichDB == "remote")
+ dbUrl = "mongodb+srv://AdminForUse:XV8MXEdBYuwXtQnc@ichstudieremitgis-jfrz9.mongodb.net/IchStudiereMitGiS?retryWrites=true&w=majority";
+ }
+ async function connectDB(_whichDB) {
+ chooseUrl(_whichDB);
+ let options = { useNewUrlParser: true, useUnifiedTopology: true };
+ let mongoClient = new Mongo.MongoClient(dbUrl, options);
+ await mongoClient.connect();
+ //content = mongoClient.db("db").collection("Students");
+ content = mongoClient.db("MeineHochschule").collection("Students");
+ console.log("Database connection: ", content != undefined);
+ }
+ handleMongo.connectDB = connectDB;
+ function insertData(_order) {
+ content.insertOne(_order);
+ }
+ handleMongo.insertData = insertData;
+ async function removeData(_entry) {
+ //console.log("_entry: ", _entry);
+ //console.log(_entry._id);
+ let id = _entry._id;
+ let objID = new Mongo.ObjectID(id);
+ await content.deleteOne({ "_id": objID });
+ }
+ handleMongo.removeData = removeData;
+ async function findCollection() {
+ let foundCollection = await content.find().toArray();
+ return foundCollection;
+ }
+ handleMongo.findCollection = findCollection;
+ /*
+ async function findManyData(_order: Personalien): Promise {
+ let test: Mongo.Cursor = content.find(_order);
+ let testArray: Personalien[] = await test.toArray();
+ console.log( testArray );
+ return testArray.toString();
+ }
+
+ async function findOneData(_order: Personalien): Promise {
+ let test2: any = await content.findOne(_order);
+ console.log("findOneData: ", test2);
+ //console.log(test2.name);
+ }
+
+ function removeData(_order: Personalien): void {
+ content.remove(_order);
+ }
+ */
+})(handleMongo = exports.handleMongo || (exports.handleMongo = {}));
+//# sourceMappingURL=mongo.js.map
\ No newline at end of file
diff --git a/Aufgaben/Aufgabe_11_2020-07-08/mongo.js.map b/Aufgaben/Aufgabe_11_2020-07-08/mongo.js.map
new file mode 100644
index 0000000..b7eba9a
--- /dev/null
+++ b/Aufgaben/Aufgabe_11_2020-07-08/mongo.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"mongo.js","sourceRoot":"","sources":["mongo.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AAEjC,IAAiB,WAAW,CA8D3B;AA9DD,WAAiB,WAAW;IAMxB,IAAI,OAAyB,CAAC;IAC9B,IAAI,KAAK,GAAW,EAAE,CAAC;IAEvB,SAAS,SAAS,CAAC,QAAgB;QAC/B,IAAI,QAAQ,IAAI,OAAO;YACnB,KAAK,GAAG,4BAA4B,CAAC;QACzC,IAAI,QAAQ,IAAI,QAAQ;YACpB,KAAK,GAAG,8HAA8H,CAAC;IAC/I,CAAC;IAEM,KAAK,UAAU,SAAS,CAAC,QAAgB;QAC5C,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpB,IAAI,OAAO,GAA6B,EAAE,eAAe,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;QAC5F,IAAI,WAAW,GAAsB,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3E,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;QAC5B,wDAAwD;QACxD,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,OAAO,IAAI,SAAS,CAAC,CAAC;IAC/D,CAAC;IARqB,qBAAS,YAQ9B,CAAA;IAED,SAAgB,UAAU,CAAC,MAAmB;QAC1C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAFe,sBAAU,aAEzB,CAAA;IAEM,KAAK,UAAU,UAAU,CAAC,MAAmB;QAChD,kCAAkC;QAClC,0BAA0B;QAC1B,IAAI,EAAE,GAAmB,MAAM,CAAC,GAAG,CAAC;QACpC,IAAI,KAAK,GAAmB,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,OAAO,CAAC,SAAS,CAAC,EAAC,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC;IAC5C,CAAC;IANqB,sBAAU,aAM/B,CAAA;IAEM,KAAK,UAAU,cAAc;QAChC,IAAI,eAAe,GAAkB,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACpE,OAAO,eAAe,CAAC;IAC3B,CAAC;IAHqB,0BAAc,iBAGnC,CAAA;IAED;;;;;;;;;;;;;;;;;MAiBE;AAEN,CAAC,EA9DgB,WAAW,GAAX,mBAAW,KAAX,mBAAW,QA8D3B"}
\ No newline at end of file
diff --git a/Aufgaben/Aufgabe_11_2020-07-08/mongo.ts b/Aufgaben/Aufgabe_11_2020-07-08/mongo.ts
new file mode 100644
index 0000000..0f4661c
--- /dev/null
+++ b/Aufgaben/Aufgabe_11_2020-07-08/mongo.ts
@@ -0,0 +1,65 @@
+import * as Mongo from "mongodb";
+
+export namespace handleMongo {
+
+ export interface Personalien {
+ [type: string]: string | string[] | number | undefined;
+ }
+
+ let content: Mongo.Collection;
+ let dbUrl: string = "";
+
+ function chooseUrl(_whichDB: string): void {
+ if (_whichDB == "local")
+ dbUrl = "mongodb://127.0.0.1:27017/";
+ if (_whichDB == "remote")
+ dbUrl = "mongodb+srv://AdminForUse:XV8MXEdBYuwXtQnc@ichstudieremitgis-jfrz9.mongodb.net/IchStudiereMitGiS?retryWrites=true&w=majority";
+ }
+
+ export async function connectDB(_whichDB: string): Promise { // _url: string
+ chooseUrl(_whichDB);
+ let options: Mongo.MongoClientOptions = { useNewUrlParser: true, useUnifiedTopology: true };
+ let mongoClient: Mongo.MongoClient = new Mongo.MongoClient(dbUrl, options);
+ await mongoClient.connect();
+ //content = mongoClient.db("db").collection("Students");
+ content = mongoClient.db("MeineHochschule").collection("Students");
+ console.log("Database connection: ", content != undefined);
+ }
+
+ export function insertData(_order: Personalien): void {
+ content.insertOne(_order);
+ }
+
+ export async function removeData(_entry: Personalien): Promise {
+ //console.log("_entry: ", _entry);
+ //console.log(_entry._id);
+ let id: string = _entry._id;
+ let objID: Mongo.ObjectID = new Mongo.ObjectID(id);
+ await content.deleteOne({"_id": objID});
+ }
+
+ export async function findCollection(): Promise {
+ let foundCollection: Personalien[] = await content.find().toArray();
+ return foundCollection;
+ }
+
+ /*
+ async function findManyData(_order: Personalien): Promise {
+ let test: Mongo.Cursor = content.find(_order);
+ let testArray: Personalien[] = await test.toArray();
+ console.log( testArray );
+ return testArray.toString();
+ }
+
+ async function findOneData(_order: Personalien): Promise {
+ let test2: any = await content.findOne(_order);
+ console.log("findOneData: ", test2);
+ //console.log(test2.name);
+ }
+
+ function removeData(_order: Personalien): void {
+ content.remove(_order);
+ }
+ */
+
+}
\ No newline at end of file
diff --git a/Aufgaben/Aufgabe_11_2020-07-08/server.js b/Aufgaben/Aufgabe_11_2020-07-08/server.js
new file mode 100644
index 0000000..b68f03b
--- /dev/null
+++ b/Aufgaben/Aufgabe_11_2020-07-08/server.js
@@ -0,0 +1,55 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ServerSide = void 0;
+const Http = require("http");
+const url = require("url");
+const mongo_1 = require("./mongo");
+//import {testThis } from "mongo.js";
+var ServerSide;
+(function (ServerSide) {
+ console.log("Starting server");
+ let port = Number(process.env.PORT);
+ if (!port)
+ port = 8100;
+ let server = Http.createServer();
+ server.addListener("request", handleRequest);
+ server.addListener("listening", handleListen);
+ server.listen(port);
+ let myArgs = process.argv.slice(2);
+ let whichDB = myArgs[0];
+ mongo_1.handleMongo.connectDB(whichDB);
+ function handleListen() {
+ console.log("Listening");
+ }
+ async function handleRequest(_request, _response) {
+ console.log("https://theoneandgis.herokuapp.com" + `${_request.url}`);
+ let myData = url.parse(`${_request.url}`, true);
+ let myQuery = myData.query;
+ let myQueryString = JSON.stringify(myQuery);
+ //let splitString: string = (_request.url).slice(0, 9);
+ _response.setHeader("content-type", "application/json");
+ _response.setHeader("Access-Control-Allow-Origin", "*");
+ if (_request.url.includes("/mongo")) {
+ await mongoAction(_response, myQueryString, _request.url);
+ }
+ _response.end();
+ }
+ async function mongoAction(_response, _query, _command) {
+ if (_command.includes("/send")) {
+ let myJsonObj = JSON.parse(_query);
+ mongo_1.handleMongo.insertData(myJsonObj);
+ _response.write(_query);
+ }
+ if (_command.includes("/retrieve")) {
+ let value = await mongo_1.handleMongo.findCollection();
+ let handlThis = JSON.stringify(value);
+ _response.write(handlThis);
+ }
+ if (_command.includes("/remove")) {
+ let myJsonObj = JSON.parse(_query);
+ await mongo_1.handleMongo.removeData(myJsonObj);
+ _response.write(`{"":""}`);
+ }
+ }
+})(ServerSide = exports.ServerSide || (exports.ServerSide = {}));
+//# sourceMappingURL=server.js.map
\ No newline at end of file
diff --git a/Aufgaben/Aufgabe_11_2020-07-08/server.js.map b/Aufgaben/Aufgabe_11_2020-07-08/server.js.map
new file mode 100644
index 0000000..31e2e84
--- /dev/null
+++ b/Aufgaben/Aufgabe_11_2020-07-08/server.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"server.js","sourceRoot":"","sources":["server.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,2BAA2B;AAE3B,mCAAsC;AAEtC,qCAAqC;AAErC,IAAiB,UAAU,CA2D1B;AA3DD,WAAiB,UAAU;IAEvB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,IAAI,IAAI,GAAW,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI;QACL,IAAI,GAAG,IAAI,CAAC;IAEhB,IAAI,MAAM,GAAgB,IAAI,CAAC,YAAY,EAAE,CAAC;IAC9C,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC7C,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEpB,IAAI,MAAM,GAAa,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,OAAO,GAAW,MAAM,CAAC,CAAC,CAAC,CAAC;IAChC,mBAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAG/B,SAAS,YAAY;QACjB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,UAAU,aAAa,CAAC,QAA8B,EAAE,SAA8B;QACvF,OAAO,CAAC,GAAG,CAAC,oCAAoC,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QAEtE,IAAI,MAAM,GAA2B,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QACxE,IAAI,OAAO,GAAmB,MAAM,CAAC,KAAK,CAAC;QAC3C,IAAI,aAAa,GAAW,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACpD,+DAA+D;QAE/D,SAAS,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QACxD,SAAS,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;QAExD,IAAc,QAAQ,CAAC,GAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAG;YAC7C,MAAM,WAAW,CAAE,SAAS,EAAE,aAAa,EAAY,QAAQ,CAAC,GAAI,CAAE,CAAC;SAC1E;QAED,SAAS,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,UAAU,WAAW,CAAC,SAA8B,EAAE,MAAc,EAAE,QAAgB;QACvF,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC5B,IAAI,SAAS,GAA4B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC5D,mBAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAClC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC3B;QAED,IAAK,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAG;YAClC,IAAI,KAAK,GAA8B,MAAM,mBAAW,CAAC,cAAc,EAAE,CAAC;YAC1E,IAAI,SAAS,GAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9C,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SAC9B;QAED,IAAK,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAG;YAChC,IAAI,SAAS,GAA4B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC5D,MAAM,mBAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACxC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SAC9B;IACL,CAAC;AAEL,CAAC,EA3DgB,UAAU,GAAV,kBAAU,KAAV,kBAAU,QA2D1B"}
\ No newline at end of file
diff --git a/Aufgaben/Aufgabe_11_2020-07-08/server.ts b/Aufgaben/Aufgabe_11_2020-07-08/server.ts
new file mode 100644
index 0000000..1c87933
--- /dev/null
+++ b/Aufgaben/Aufgabe_11_2020-07-08/server.ts
@@ -0,0 +1,67 @@
+import * as Http from "http";
+import * as url from "url";
+import { ParsedUrlQuery } from "querystring";
+import { handleMongo } from "./mongo";
+
+//import {testThis } from "mongo.js";
+
+export namespace ServerSide {
+
+ console.log("Starting server");
+ let port: number = Number(process.env.PORT);
+ if (!port)
+ port = 8100;
+
+ let server: Http.Server = Http.createServer();
+ server.addListener("request", handleRequest);
+ server.addListener("listening", handleListen);
+ server.listen(port);
+
+ let myArgs: string[] = process.argv.slice(2);
+ let whichDB: string = myArgs[0];
+ handleMongo.connectDB(whichDB);
+
+
+ function handleListen(): void {
+ console.log("Listening");
+ }
+
+ async function handleRequest(_request: Http.IncomingMessage, _response: Http.ServerResponse): Promise {
+ console.log("https://theoneandgis.herokuapp.com" + `${_request.url}`);
+
+ let myData: url.UrlWithParsedQuery = url.parse(`${_request.url}`, true);
+ let myQuery: ParsedUrlQuery = myData.query;
+ let myQueryString: string = JSON.stringify(myQuery);
+ //let splitString: string = (_request.url).slice(0, 9);
+
+ _response.setHeader("content-type", "application/json");
+ _response.setHeader("Access-Control-Allow-Origin", "*");
+
+ if ( (_request.url).includes("/mongo") ) {
+ await mongoAction( _response, myQueryString , (_request.url) );
+ }
+
+ _response.end();
+ }
+
+ async function mongoAction(_response: Http.ServerResponse, _query: string, _command: string): Promise {
+ if (_command.includes("/send")) {
+ let myJsonObj: handleMongo.Personalien = JSON.parse(_query);
+ handleMongo.insertData(myJsonObj);
+ _response.write(_query);
+ }
+
+ if ( _command.includes("/retrieve") ) {
+ let value: handleMongo.Personalien[] = await handleMongo.findCollection();
+ let handlThis: string = JSON.stringify(value);
+ _response.write(handlThis);
+ }
+
+ if ( _command.includes("/remove") ) {
+ let myJsonObj: handleMongo.Personalien = JSON.parse(_query);
+ await handleMongo.removeData(myJsonObj);
+ _response.write(`{"":""}`);
+ }
+ }
+
+}
diff --git a/Steckbrief/steckbrief.htm b/Steckbrief/steckbrief.htm
index dcad850..230617a 100644
--- a/Steckbrief/steckbrief.htm
+++ b/Steckbrief/steckbrief.htm
@@ -18,7 +18,7 @@ body {
Aufgabe 10
(2020-06-24) : Server Request Verarbeitung
Aufgabe 09 &
- Server.ts
+ Server.ts
(2020-06-17) : Serveranbindung
Aufgabe 08
(2020-06-10) : JSON, Local Storage & Kommunikation
diff --git a/argv.js b/argv.js
new file mode 100644
index 0000000..031abd3
--- /dev/null
+++ b/argv.js
@@ -0,0 +1 @@
+console.log(process.argv);
\ No newline at end of file
diff --git a/package.json b/package.json
index 04674f2..c1b4a7d 100644
--- a/package.json
+++ b/package.json
@@ -4,11 +4,13 @@
"description": "Diese Datei soll mir helfen, mit Heruko arbeiten zu können.",
"main": "index.js",
"dependencies": {
- "@types/node": "^14.0.13"
+ "@types/mongodb": "^3.5.25",
+ "@types/node": "^14.0.13",
+ "mongodb": "^3.5.9"
},
"devDependencies": {},
"scripts": {
- "start": "node Aufgaben/Aufgabe_09_2020-06-24/server.js"
+ "start": "node Aufgaben/Aufgabe_11_2020-07-08/server.js remote"
},
"repository": {
"type": "git",