Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const express = require("express") //Einbindung von Express-Framework und Bindung an die express Konstante
- const fs = require("fs") //Einbindung des Filesystem-Modules
- const app = express() //der Konstante app das Express-Framework zuweisen
- const port = 1337 //Webserver-Port Konstante
- var path = require('path')
- var bodyParser = require('body-parser')
- app.use(express.static(path.join(__dirname)))
- app.use("/styles",express.static(__dirname + "/Website/css/"))
- app.use("/site", express.static(__dirname + "/Website/"))
- app.use("/images", express.static(__dirname + "/Website/pictures/"))
- app.use(bodyParser.urlencoded({extended: false}));
- app.use(bodyParser.json())
- //behandlung der get-request die direkt auf http://serverip:port geht
- app.get('/', (request, response) => {
- console.log("request recieved from " + request.ip + " for " + request.url)
- response.status(200).sendFile(__dirname + '/Website/index.html')
- })
- app.post('/login', function(req,res){ //Handler der post-request für '/login'
- var user = req.body.username; //Extrahieren des Username und des Passwort aus der post-request
- var password = req.body.password;
- console.log("Login from " + user + ":" + password + "@localhost:1337"); //log des username und passwort
- if(user != "" && password != "") //Überprüfung ob User und Passwort nicht leer sind
- {
- fs.readFile("pw.txt","utf8", function(err,data) //Einlesen der Passwortdatei
- {
- var row = data.split("\n"); //Array das jede Zeile der Datei, als einzelnes Element enthält (Eine Zeile ist aufgeteilt in "Username;Passwort;Rolle" )
- var user_validated = false; //Boolean der zeigt ob der USer vorhanden ist oder nicht
- for(var i=0; i<row.length;i++) //Schleife die jedes Element des Arrays und somit jeden User durchläuft
- {
- if(row[i].split(";")[0]==user&&row[i].split(";")[1]==password)// Aufteilung eines Elemts des Arrays in die Teile User, Passwort und Rolle
- {
- var role = row[i].split(";")[2].charAt(0);//Abspeichern der Rolle in eine eigen Variable
- user_validated == true; //Boolean auf True stellen das der User existiert
- if(role=="A") //Nachfolgend werden Anhand der Rollen immer die den Rollen entsprechenden Seiten zurückgegeben
- {
- res.status(200).sendFile(__dirname + "/Website/arzt.html")
- }
- else if (role=="P")
- {
- res.status(200).sendFile(__dirname + "/Website/patient.html")
- }
- else if (role=="T")
- {
- res.status(200).sendFile(__dirname + "/Website/trainer.html")
- }
- }
- if(i == row.length-1 && user_validated == false )// Falls der User nicht vorhanden ist, wird die "login_failed.html" zurückgegeben
- {
- console.log("Login failed from " + req.ip + " as" + user + "@localhost:1337")
- res.status(200).sendFile(__dirname + '/Website/login_failed.html')
- }
- }
- });
- }
- })
- // Nachfolgend werden die einzelnen direkten get-requests einzeln behandelt, nach den Seiten "artzt, patient, trainer und index"
- app.get('/index.html', (request, response) => {
- console.log("request recieved from " + request.ip + "for " + request.url)
- response.status(200).sendFile(__dirname + '/Website/index.html')
- })
- app.get('/patient.html', (request, response) => {
- console.log("request recieved from " + request.ip + "for " + request.url)
- response.status(200).sendFile(__dirname + '/Website/patient.html')
- })
- app.get('/arzt.html', (request, response) => {
- console.log("request recieved from " + request.ip + "for " + request.url)
- response.status(200).sendFile(__dirname + '/Website/arzt.html')
- })
- app.get('/trainer.html', (request, response) => {
- console.log("request recieved from " + request.ip + "for " + request.url)
- response.status(200).sendFile(__dirname + '/Website/trainer.html')
- })
- //Dem Webserver erlauben um auf dem Port nach http-requests zu "hören"
- app.listen(port,(err) => {
- if(err){
- return console.log('something weired happened, contact Server-Admin', err);
- }
- console.log(`server is listening @localhost:${port}`)
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement