Upload Aufgabe 11
This commit is contained in:
parent
888e67834c
commit
418434fcfc
|
@ -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 += `<button class="removeButton" thisEntry=${(JSON.stringify(_jsonResponse[index]._id))}> Delete Entry </button><br>`;
|
||||
let current = _jsonResponse[index];
|
||||
for (let key in current) {
|
||||
jsonString += key + ": " + JSON.stringify(current[key]) + "<br>";
|
||||
}
|
||||
jsonString += "<br>";
|
||||
}
|
||||
}
|
||||
return jsonString;
|
||||
}
|
||||
function addRemoveFunction() {
|
||||
let removeButtons = document.querySelectorAll(".removeButton");
|
||||
for (const iterator of removeButtons)
|
||||
iterator.addEventListener("click", removeData);
|
||||
}
|
||||
})(clientSide || (clientSide = {}));
|
||||
//# sourceMappingURL=client.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"client.js","sourceRoot":"","sources":["client.ts"],"names":[],"mappings":"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"}
|
|
@ -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;
|
||||
}
|
||||
|
||||
(<HTMLButtonElement>document.querySelector("#abschicken")).addEventListener("click", sendData);
|
||||
function sendData(): void {
|
||||
communicate("https://theoneandgis.herokuapp.com", "mongo", "send", "");
|
||||
}
|
||||
|
||||
(<HTMLButtonElement>document.querySelector("#abfragen")).addEventListener("click", retrieveData);
|
||||
function retrieveData(): void {
|
||||
communicate("https://theoneandgis.herokuapp.com", "mongo", "retrieve", "");
|
||||
}
|
||||
|
||||
function removeData(_event: Event): void {
|
||||
let target: HTMLElement = (<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<void> {
|
||||
let formData: FormData = new FormData(document.forms[0]);
|
||||
let url: string = "";
|
||||
if (_id == "") {
|
||||
//tslint:disable-next-line: no-any
|
||||
let query: URLSearchParams = new URLSearchParams(<any>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);
|
||||
(<HTMLDivElement>document.querySelector("#divResponse")).innerHTML = jsonString;
|
||||
//console.log(jsonResponse[0].vorname + " " + jsonResponse[0].nachname + " " + jsonResponse[0].geburtsjahr);
|
||||
}
|
||||
if (_task == "retrieve") {
|
||||
let jsonString: string = formatCollection(jsonResponse);
|
||||
(<HTMLDivElement>document.querySelector("#divDatabase")).innerHTML = jsonString;
|
||||
addRemoveFunction();
|
||||
}
|
||||
|
||||
(<HTMLFormElement>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 += `<button class="removeButton" thisEntry=${(JSON.stringify(_jsonResponse[index]._id))}> Delete Entry </button><br>`;
|
||||
let current: Personalien = <Personalien>_jsonResponse[index];
|
||||
for (let key in current) {
|
||||
jsonString += key + ": " + JSON.stringify(current[key]) + "<br>";
|
||||
}
|
||||
jsonString += "<br>";
|
||||
}
|
||||
}
|
||||
return jsonString;
|
||||
}
|
||||
|
||||
function addRemoveFunction(): void {
|
||||
let removeButtons: NodeListOf<HTMLButtonElement> = document.querySelectorAll(".removeButton");
|
||||
for (const iterator of removeButtons)
|
||||
iterator.addEventListener("click", removeData);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<script src="client.js" defer></script>
|
||||
<title>Kapitel 11</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<button class="container">Becher</button>
|
||||
<button id="blueberry">Blau</button>
|
||||
<button id="raspberry">Rot</button>
|
||||
<button id="streusel">bunte Streusel</button>
|
||||
|
||||
<hr>
|
||||
|
||||
<form id="myForm" method="" action="">
|
||||
<!--https://theoneandgis.herokuapp.com-->
|
||||
|
||||
<label for="vorname" method="get">
|
||||
Vorname
|
||||
</label><br>
|
||||
<input type="text" id="vorname" name="vorname" value="Vorname" onfocus="this.value=''"><br>
|
||||
|
||||
<label for="nachname">
|
||||
Nachname
|
||||
</label><br>
|
||||
<input type="text" id="nachname" name="nachname" value="Nachname" onfocus="this.value=''"><br>
|
||||
|
||||
<label for="geburtsjahr">
|
||||
Geburtsjahr
|
||||
</label><br>
|
||||
<input type="text" id="geburtsjahr" name="geburtsjahr" value="2000"><br>
|
||||
|
||||
<button type="button" id="abschicken"> Eintrag </button>
|
||||
<button type="button" id="abfragen"> Abfrage </button>
|
||||
|
||||
</form>
|
||||
|
||||
<hr>
|
||||
<div id="divResponse"></div>
|
||||
<hr>
|
||||
<div id="divDatabase"></div>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
<style>
|
||||
button,
|
||||
label,
|
||||
input,
|
||||
div {
|
||||
margin: 10px;
|
||||
}
|
||||
body{
|
||||
background-color: black;
|
||||
color: white;
|
||||
}
|
||||
</style>
|
|
@ -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<string> {
|
||||
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<void> {
|
||||
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
|
|
@ -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"}
|
|
@ -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<void> { // _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<void> {
|
||||
//console.log("_entry: ", _entry);
|
||||
//console.log(_entry._id);
|
||||
let id: string = <string>_entry._id;
|
||||
let objID: Mongo.ObjectID = new Mongo.ObjectID(id);
|
||||
await content.deleteOne({"_id": objID});
|
||||
}
|
||||
|
||||
export async function findCollection(): Promise<Personalien[]> {
|
||||
let foundCollection: Personalien[] = await content.find().toArray();
|
||||
return foundCollection;
|
||||
}
|
||||
|
||||
/*
|
||||
async function findManyData(_order: Personalien): Promise<string> {
|
||||
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<void> {
|
||||
let test2: any = await content.findOne(_order);
|
||||
console.log("findOneData: ", test2);
|
||||
//console.log(test2.name);
|
||||
}
|
||||
|
||||
function removeData(_order: Personalien): void {
|
||||
content.remove(_order);
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
|
@ -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 = (<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
|
|
@ -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"}
|
|
@ -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<void> {
|
||||
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 = (<string>_request.url).slice(0, 9);
|
||||
|
||||
_response.setHeader("content-type", "application/json");
|
||||
_response.setHeader("Access-Control-Allow-Origin", "*");
|
||||
|
||||
if ( (<string>_request.url).includes("/mongo") ) {
|
||||
await mongoAction( _response, myQueryString , (<string>_request.url) );
|
||||
}
|
||||
|
||||
_response.end();
|
||||
}
|
||||
|
||||
async function mongoAction(_response: Http.ServerResponse, _query: string, _command: string): Promise<void> {
|
||||
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(`{"":""}`);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -18,7 +18,7 @@ body {
|
|||
<a href="https://mongodbnetbrowser.herokuapp.com/?u=AdminForUse&p=XV8MXEdBYuwXtQnc&a=ichstudieremitgis-jfrz9.mongodb.net&n=MeineHochschule&c=Students" target="_blank"> Aufgabe 10 </a><br>
|
||||
(2020-06-24) : Server Request Verarbeitung <br>
|
||||
<a href="https://yamidesu.github.io/GIS-SoSe-2020/Aufgaben/Aufgabe_09_2020-06-24/form.html" target="_blank"> Aufgabe 09 </a> &
|
||||
<a href="https://github.com/YamiDesu/GIS-SoSe-2020/blob/master/Aufgaben/Aufgabe_08_2020-06-17/test.ts" target="_blank"> Server.ts </a><br>
|
||||
<a href="https://github.com/YamiDesu/GIS-SoSe-2020/blob/master/Aufgaben/Aufgabe_09_2020-06-24/server.ts" target="_blank"> Server.ts </a><br>
|
||||
(2020-06-17) : Serveranbindung <br>
|
||||
<a href="https://yamidesu.github.io/GIS-SoSe-2020/Aufgaben/Aufgabe_08_2020-06-17/tutorial.html" target="_blank"> Aufgabe 08 </a><br>
|
||||
(2020-06-10) : JSON, Local Storage & Kommunikation <br>
|
||||
|
|
|
@ -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",
|
||||
|
|
Loading…
Reference in New Issue