Advertisement
Guest User

server.js

a guest
May 14th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var express = require('express');
  2. var app = express();
  3. var fs = require("fs");
  4. var bodyParser = require('body-parser');
  5.  
  6. // Create application/x-www-form-urlencoded parser
  7. var urlencodedParser = bodyParser.urlencoded({ extended: false })
  8. var authenticatedUser = null;
  9. app.use(express.static('Front End'));
  10. app.use(bodyParser.json());
  11.  
  12. // Email validation funciton
  13. function validateEmail(email)
  14. {
  15.     // using regular expression.
  16.     if (email.length > 0)
  17.     {
  18.       var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  19.       return re.test(email);
  20.   }
  21.   else
  22.     return false;
  23. }
  24.  
  25. // Password validation function
  26. function validatePassword(pass)
  27. {
  28.   if (pass.length < 5)
  29.     return false;
  30.   else
  31.     return true;
  32. }
  33.  
  34. // Username validation function
  35. function validateUsername(name)
  36. {
  37.   if (name.length > 0)
  38.     return /^[a-zA-Z]*$/.test(name);
  39.   else
  40.     return false;
  41. }
  42. // Number of users already registered
  43. var usersCount = 0;
  44. var id = 0;
  45. var storedData;
  46. var userNAME;
  47. var storedData2;
  48.  
  49. /**** This part to handle default request url= localhost:8081 ******/
  50. app.get('/', function (req, res) {
  51.   res.sendFile( __dirname + "/" + "homepage.html" );
  52. })
  53.  
  54. app.get('/homepage.html', function (req, res) {
  55.   res.sendFile( __dirname + "/" + "homepage.html" );
  56. })
  57.  
  58. app.post('/login', urlencodedParser, function (req, res) {
  59.  
  60.   // Get the values of the input text email & password
  61.   email = req.body.email;
  62.   password = req.body.password;
  63.   console.log(email);
  64.   console.log(password);
  65.  
  66.   // Read JSON file containing the users to verify that the user is already registered and have access
  67.   var data = fs.readFileSync( __dirname + "/" + "users.json", 'utf8');
  68.     // Note that err here is for handling any error occuring in opening the file
  69.      
  70.     var data2 = JSON.parse(data);
  71.     var flag = 0;
  72.     usersCount = 0;
  73.         id = 0;
  74.        
  75.     for (var user in data2)
  76.     {
  77.       if(email == data2[user].email)
  78.       {
  79.         flag = 1;
  80.         authenticatedUser = user;
  81.         break;
  82.       }
  83.       else
  84.       {
  85.         flag = 0;
  86.         usersCount++;
  87.           id++;
  88.           console.log("id: " + id);
  89.       }
  90.     }
  91.     if(flag == 1)
  92.     {
  93.       if (password == data2[authenticatedUser].password)
  94.       {
  95.         console.log(password);
  96.         console.log(data2[authenticatedUser].username);
  97.         userNAME = data2[authenticatedUser].username;
  98.         console.log("This is the tasks page");
  99.         res.sendFile( __dirname + "/" + "ProjectPh1V1.html");
  100.         console.log("herewe areee");
  101.         try {
  102.         storedData = fs.readFileSync(__dirname + "/" + id + ".json",  'utf8');              
  103.         storedData2 = JSON.parse(storedData);
  104.         storedData2["name"] = userNAME;
  105.         console.log(userNAME);
  106.       }catch (ex)
  107.       {
  108.         console.log(ex);
  109.          storedData2["name"] = userNAME;
  110.         console.log(userNAME);
  111.       }
  112.         console.log(storedData2);
  113.       }
  114.       else
  115.       {
  116.         res.sendFile( __dirname + "/" + "wrongpass.html");
  117.       }
  118.     }
  119.     // Handle invalid login by redirecting the user to the login page once again
  120.     else {
  121.       console.log("User Not found");
  122.       res.sendFile( __dirname + "/" + "loginerror.html");
  123.     }
  124.   })
  125.  
  126.  app.get("/arraydata", function (req, res) {
  127.  
  128.     res.send(storedData2);
  129. });
  130.  
  131. app.post('/array', function(req, res) {
  132.     console.log("harby's herbyes");
  133.     var data = req.body;
  134.     console.log(data);
  135.    
  136.     fs.writeFile(__dirname + "/" + id + ".json", JSON.stringify(data), function (err) {
  137.         if (err) return console.log(err);
  138.         console.log(JSON.stringify(data));
  139.         console.log(id);
  140.     });  
  141.     res.send('success');
  142.     console.log('successsent');
  143. });
  144.  
  145.  app.post('/register',urlencodedParser, function(req, res)
  146.  {
  147.   console.log("got here from ajax");
  148.   var data = req.body;
  149.   console.log(data);
  150.   username = data.name;
  151.   email = data.email;
  152.   password = data.password;
  153.  
  154.   console.log(username);
  155.   console.log(email);
  156.   console.log(password);
  157.  
  158.   var f = 0
  159.   if (validateUsername(username) && validateEmail(email) && validatePassword(password))
  160.     f = 3;
  161.   else if (!validateUsername(username))
  162.     f = -1;
  163.   else if (!validatePassword(password))
  164.     f = -2;
  165.  
  166.   if (f == 3)
  167.   {
  168.     console.log("Correct front end validations");
  169.     newUser = {
  170.       "password" : password,
  171.       "username" : username,
  172.           "email" : email,
  173.           "id" : id
  174.       }
  175.     var flag = 0;
  176.     // Make sure this is a unique email address
  177.     fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
  178.       if (err)
  179.         return console.error(err);
  180.         data = JSON.parse(data);
  181.         usersCount = 0;
  182.         id = 0;
  183.         flag = 0;
  184.         console.log('Going to check if there are duplicates');
  185.         for (var user in data)
  186.         {
  187.           if(email == data[user].email)
  188.           {
  189.             flag=1;
  190.             break;
  191.           }
  192.           usersCount++;
  193.           id++;
  194.         }
  195.    
  196.       if (flag == 0)
  197.       {
  198.         console.log("ok no duplicates");
  199.         // Add user to the JSON file database and show the homepage again
  200.         fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
  201.           newUser = {
  202.             "password" : password,
  203.             "username" : username,
  204.                 "email" : email,
  205.                 "id" : id
  206.             }
  207.           console.log("read users file!");
  208.           if (err)
  209.             return console.error(err);
  210.              data = JSON.parse(data); // Converting it to string.
  211.              data[usersCount] = newUser;
  212.              console.log(data);
  213.             fs.writeFile(__dirname + "/" + "users.json",JSON.stringify(data), function (err) {
  214.                    if (err)
  215.                        return console.log(err);
  216.                    console.log(JSON.stringify(data));
  217.            })
  218.              res.sendFile( __dirname + "/" + "validregister.html" );
  219.              fs.writeFile(__dirname + "/" + id + ".json",JSON.stringify({"allTasksArray[]":[],"inProgressArray[]":[],"completedArray[]":[],"archivedArray[]":[]}));
  220.              app.get('/homepage.html', function (req, res) {
  221.               res.sendFile( __dirname + "/" + "homepage.html" );
  222.           })    
  223.         });
  224.  
  225.          
  226.  
  227.       }
  228.       else
  229.       {
  230.         console.log("Yes, duplicates");
  231.         res.sendFile( __dirname + "/" + "registererror.html");
  232.       }
  233.     })
  234.   }
  235.   else if (f == -2)
  236.   {
  237.     res.sendFile( __dirname + "/" + "passlength.html" );
  238.   }
  239.   else if (f == -1)
  240.   {
  241.     res.sendFile( __dirname + "/" + "usernamewrong.html");
  242.   }
  243.  })
  244.  
  245. app.get('/ProjectPh1V1.html', function(req, res){
  246.   res.sendFile( __dirname + "/" + "ProjectPh1V1.html" );
  247. })
  248.  
  249. var server = app.listen(8081, function () {
  250.   var host = server.address().address
  251.   var port = server.address().port
  252.   console.log("App listening at http://%s:%s", host, port)
  253. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement