Advertisement
Guest User

Untitled

a guest
May 10th, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.14 KB | None | 0 0
  1. const express = require("express") //Einbindung von Express-Framework und Bindung an die express Konstante
  2. const fs = require("fs") //Einbindung des Filesystem-Modules
  3. const app = express() //der Konstante app das Express-Framework zuweisen
  4. const port = 1337 //Webserver-Port Konstante
  5. var path = require('path')
  6. var bodyParser = require('body-parser')
  7.  
  8. app.use(express.static(path.join(__dirname)))
  9.  
  10. app.use("/styles",express.static(__dirname + "/Website/css/"))
  11. app.use("/site", express.static(__dirname + "/Website/"))
  12. app.use("/images", express.static(__dirname + "/Website/pictures/"))
  13. app.use(bodyParser.urlencoded({extended: false}));
  14. app.use(bodyParser.json())
  15.  
  16. //behandlung der get-request die direkt auf http://serverip:port geht
  17. app.get('/', (request, response) => {
  18. console.log("request recieved from " + request.ip + " for " + request.url)
  19. response.status(200).sendFile(__dirname + '/Website/index.html')
  20. })
  21.  
  22. app.post('/login', function(req,res){ //Handler der post-request für '/login'
  23. var user = req.body.username; //Extrahieren des Username und des Passwort aus der post-request
  24. var password = req.body.password;
  25. console.log("Login from " + user + ":" + password + "@localhost:1337"); //log des username und passwort
  26.  
  27. if(user != "" && password != "") //Überprüfung ob User und Passwort nicht leer sind
  28. {
  29. fs.readFile("pw.txt","utf8", function(err,data) //Einlesen der Passwortdatei
  30. {
  31. var row = data.split("\n"); //Array das jede Zeile der Datei, als einzelnes Element enthält (Eine Zeile ist aufgeteilt in "Username;Passwort;Rolle" )
  32. var user_validated = false; //Boolean der zeigt ob der USer vorhanden ist oder nicht
  33.  
  34. for(var i=0; i<row.length;i++) //Schleife die jedes Element des Arrays und somit jeden User durchläuft
  35. {
  36.  
  37. if(row[i].split(";")[0]==user&&row[i].split(";")[1]==password)// Aufteilung eines Elemts des Arrays in die Teile User, Passwort und Rolle
  38. {
  39. var role = row[i].split(";")[2].charAt(0);//Abspeichern der Rolle in eine eigen Variable
  40. user_validated == true; //Boolean auf True stellen das der User existiert
  41.  
  42. if(role=="A") //Nachfolgend werden Anhand der Rollen immer die den Rollen entsprechenden Seiten zurückgegeben
  43. {
  44. res.status(200).sendFile(__dirname + "/Website/arzt.html")
  45. }
  46. else if (role=="P")
  47. {
  48. res.status(200).sendFile(__dirname + "/Website/patient.html")
  49. }
  50. else if (role=="T")
  51. {
  52. res.status(200).sendFile(__dirname + "/Website/trainer.html")
  53. }
  54. }
  55. if(i == row.length-1 && user_validated == false )// Falls der User nicht vorhanden ist, wird die "login_failed.html" zurückgegeben
  56. {
  57. console.log("Login failed from " + req.ip + " as" + user + "@localhost:1337")
  58. res.status(200).sendFile(__dirname + '/Website/login_failed.html')
  59. }
  60.  
  61. }
  62. });
  63. }
  64. })
  65.  
  66. // Nachfolgend werden die einzelnen direkten get-requests einzeln behandelt, nach den Seiten "artzt, patient, trainer und index"
  67. app.get('/index.html', (request, response) => {
  68. console.log("request recieved from " + request.ip + "for " + request.url)
  69. response.status(200).sendFile(__dirname + '/Website/index.html')
  70. })
  71.  
  72. app.get('/patient.html', (request, response) => {
  73. console.log("request recieved from " + request.ip + "for " + request.url)
  74. response.status(200).sendFile(__dirname + '/Website/patient.html')
  75. })
  76.  
  77. app.get('/arzt.html', (request, response) => {
  78. console.log("request recieved from " + request.ip + "for " + request.url)
  79. response.status(200).sendFile(__dirname + '/Website/arzt.html')
  80. })
  81.  
  82. app.get('/trainer.html', (request, response) => {
  83. console.log("request recieved from " + request.ip + "for " + request.url)
  84. response.status(200).sendFile(__dirname + '/Website/trainer.html')
  85. })
  86.  
  87. //Dem Webserver erlauben um auf dem Port nach http-requests zu "hören"
  88. app.listen(port,(err) => {
  89. if(err){
  90. return console.log('something weired happened, contact Server-Admin', err);
  91. }
  92.  
  93. console.log(`server is listening @localhost:${port}`)
  94. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement