-
Notifications
You must be signed in to change notification settings - Fork 0
Einarbeitung Node.Js & Javascript [Sebastian Brock]
Vor dem Semesterstart
Vor dem Beginn des Wintersemesters wurden - wie im ILIAS empfohlen - verschiedene Online-Lehrmaterialien zusammengesucht, und anhand von diesen wurden die Grundlagen von JavaScript erlernt. Dies gestaltete sich als keine sehr große Herausforderung, da das bereits vorhandene Wissen in Java und Kotlin aus den ersten Semestern geholfen hat, sich einzuarbeiten. Es wurden auch Materialien zu Node.Js genutzt, doch in deutlich kleinerem Maße als bei JavaScript. Es bestand zu Beginn des Semesters also lediglich ein absolutes Grundlagenwissen in Node.Js. (Das Prinzip war klar, doch die Anwendung und die Entwicklung von eigenem Code war noch nicht selbstständig möglich)
Seit Semesterstart
Seit Semesterbeginn wurde dann das Tempo etwas angezogen, und nun wurden die Lehrmaterialien aus dem ILIAS genutzt, um sich weiteres Wissen anzueignen. Die Videoreihe von Golo Roden zu Node.Js wurde bis zum 5. Video angeschaut und die behandelten Inhalte selbstständig in Code nachgearbeitet. Erste eigene Webserver wurden auf Basis der Videos aufgesetzt.
Zusätzlich wurde das erste Aufgabenblatt zu JavaScript erfolgreich bearbeitet.
Zum 5.12. sind die Grundlagen für das Arbeiten mit JS und Node.Js solide vorhanden, erste Arbeiten mit realem Code sind nun möglich.
Anschließend wurden das zweite und dritte Arbeitsblatt zu JavaScript erfolgreich abgeschlossen. Vor allem das dritte Blatt war dabei für besondere Relevanz im Bezug zu diesem Projekt, da es nach aktuellem Stand geplant ist, die Cocktail-Rezepte in einer JSON abzuspeichern, und die Grundlagen zur Bearbeitung von Objekten in einer JSOn Datei nun sicher vorhanden sind.
Codebeispiel zum dritten JavaScript-Arbeitsblatt
JSONeditor.js:
const fs = require('fs');
const { userInfo } = require('os');
const readJSON = (path, callback) => {
fs.readFile(path,'utf8',callback);
};
const findObject = (path, name, callback) => {
var array = JSON.parse(fs.readFileSync(path,'utf8',callback));
for(var i = 0; i<array.length; i++){
if(name == array[i].name) return callback(null,array[i]);
}
return callback(null,"Objekt nicht vorhanden!");
};
const deleteObject = (path, name, callback) => {
var array = JSON.parse(fs.readFileSync(path,'utf8',callback));
for(var i = 0; i<array.length; i++){
if(name == array[i].name) {array.splice(i,1);
var newjson = JSON.stringify(array);
fs.writeFileSync('cities.json',newjson);
return callback(null, name + " Erfolgreich gelöscht!")
}
}
return callback(null,"Objekt nicht vorhanden!");
}
const sortObjects = (path, callback) => {
var array = JSON.parse(fs.readFileSync(path,'utf8',callback));
var newarray = [];
var biggest = 0;
laenge = array.length;
for(var f = 0; f<laenge; f++){
var biggest = 0;
var bigindex = 0;
for(var i = 0; i<array.length; i++){
if(array[i].einwohner >= biggest) {
biggest = array[i].einwohner;
bigindex = i;
}
}
newarray.push(array[bigindex]);
array.splice(bigindex,1);
//console.log(newarray);
}
fs.writeFileSync(path,JSON.stringify(newarray));
return callback(null,"Sortieren abgeschlossen.");
}
const addObject = (path,name,einwohner,land,callback) =>{
var array = JSON.parse(fs.readFileSync(path,'utf8',callback));
let stadt = {};
stadt.name = name;
stadt.einwohner = einwohner;
stadt.bundesland = land;
array.push(stadt);
array = JSON.stringify(array);
fs.writeFileSync(path,array);
return callback(null, name + " Wurde erfolgreich hinzugefügt!");
}
module.exports = {
readJSON,
findObject,
deleteObject,
sortObjects,
addObject
};
Blatt3.js
const JSONeditor = require('./JSONeditor.js');
const prompt = require('prompt-sync')({sigint: true});
function auflisten(){
JSONeditor.readJSON('cities.json',(err,result)=>{
console.log(result);
});
}
function suchen(name){
JSONeditor.findObject('cities.json',name,(err,result)=>{
console.log(result);
});
}
function loeschen(name){
JSONeditor.deleteObject('cities.json',name,(err,result)=>{
console.log(result);
});
}
function sortieren(){
JSONeditor.sortObjects('cities.json',(err,result)=>{
console.log(result);
});
}
function hinzufuegen(name,einwohner,land){
JSONeditor.addObject('cities.json',name,einwohner,land,(err,result)=>{
console.log(result);
});
}
function main(){
console.log("Hallo! Was wollen sie tun? ","\n","1: Städte auflisten","\n","2: Stadt suchen","\n","3: Stadt löschen","\n","4: Liste Sortieren","\n","5: Stadt hinzufügen");
var auswahl = prompt("Bitte Auswahl eingeben: ");
switch (auswahl){
case '1':
JSONeditor.readJSON('cities.json',(err,result)=>{
console.log(result);
});
break;
case '2':
var name = prompt("Nach welcher Stadt wollen sie suchen? ");
suchen(name);
break;
case '3':
var name = prompt("Welche Stadt wollen sie löschen? ");
loeschen(name);
break;
case '4':
sortieren();
break;
case '5':
var name = prompt("Name der Stadt? ");
var einwohner = prompt("Anzahl der Einwohner? ");
var land = prompt("Bundesland der Stadt? ");
hinzufuegen(name,parseInt(einwohner,10),land);
}
}
main();
