Advertisement
Guest User

Untitled

a guest
May 14th, 2016
101
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. var session = require("express-session");
  10. app.use(express.static('Front End'));
  11. app.use(bodyParser.json());
  12.  
  13.  
  14. // Session
  15.  
  16. app.use(session({
  17.  
  18.   secret : "HAHAH999AHAHthis##tod@@am#n##comp%%lexHAHAHAHAH",
  19.   resave : false,
  20.   saveUninitialized :true
  21.  
  22. })
  23. );
  24.  
  25. // Email validation funciton
  26. function validateEmail(email)
  27. {
  28.     // using regular expression.
  29.     if (email.length > 0)
  30.     {
  31.       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,}))$/;
  32.       return re.test(email);
  33.   }
  34.   else
  35.     return false;
  36. }
  37.  
  38. // Password validation function
  39. function validatePassword(pass)
  40. {
  41.   if (pass.length < 5)
  42.     return false;
  43.   else
  44.     return true;
  45. }
  46.  
  47. // Username validation function
  48. function validateUsername(name)
  49. {
  50.   if (name.length > 0)
  51.     return /^[a-zA-Z]*$/.test(name);
  52.   else
  53.     return false;
  54. }
  55. // Number of users already registered
  56.  
  57.  
  58.  
  59.  
  60.  
  61. /**** This part to handle default request url= localhost:8081 ******/
  62. app.get('/', function (req, res) {
  63.   res.sendFile( __dirname + "/" + "homepage.html" );
  64. })
  65.  
  66. app.get('/homepage.html', function (req, res) {
  67.   delete req.session.email;
  68.   delete req.session.storedData2;
  69.   res.sendFile( __dirname + "/" + "homepage.html" );
  70. })
  71.  
  72. app.post('/login', urlencodedParser, function (req, res) {
  73.  
  74.   if(!req.session.email)
  75.   {
  76.  
  77.  
  78.   // Get the values of the input text email & password
  79.   var email = req.body.email;
  80.   var password = req.body.password;
  81.   var userData;
  82.   var loggedIn = false;
  83.   ///consoles
  84.   console.log(email);
  85.   console.log(password);
  86.  
  87.   // Read JSON file containing the users to verify that the user is already registered and have access
  88.   var data = fs.readFileSync( __dirname + "/" + "users.json", 'utf8');
  89.     // Note that err here is for handling any error occuring in opening the file
  90.      
  91.      userData = JSON.parse(data);
  92.      var flag = 0;
  93.    
  94.        
  95.        
  96.     for (var user in userData)
  97.     {
  98.       if((email.toLowerCase() === userData[user].email.toLowerCase()))
  99.       {
  100.         console.log ("userCo "+user);
  101.         break;
  102.       }
  103.      
  104.      
  105.     }
  106.     console.log(userData[user].id);
  107. if (password === userData[user].password){
  108.  
  109.  
  110.         req.session.userNAME = userData[user].username;
  111.         req.session.idUser = userData[user].id;
  112.         console.log(req.session.idUser);
  113.         loggedIn = true;
  114.  
  115.      if(loggedIn == true)
  116.             {
  117.  
  118.                   req.session.email = email;
  119.                   ///consoles
  120.                   console.log(password);
  121.                   console.log(userData[user].username);
  122.                   console.log("This is the tasks page");
  123.                   console.log(req.session.idUser);
  124.  
  125.                   res.sendFile( __dirname + "/" + "ProjectPh1V1.html");
  126.                   ///consoles
  127.                   console.log("herewe areee");
  128.  
  129.             try {
  130.                     var storedData = fs.readFileSync(__dirname + "/" + req.session.idUser + ".json",  'utf8');
  131.  
  132.                      req.session.storedData2 = JSON.parse(storedData);
  133.  
  134.                      req.session.storedData2["name"] = req.session.userNAME;
  135.                     ///consoles
  136.                      console.log(req.session.userNAME);
  137.                      console.log("Line 135: " +req.session.storedData2);
  138.             }catch (ex)
  139.                 {
  140.                     ///consoles
  141.                      console.log(ex);
  142.  
  143.                       req.session.storedData2["name"] = req.session.userNAME;
  144.                     ///consoles
  145.                      console.log(req.session.userNAME);
  146.                 }
  147.                     ///consoles
  148.                      console.log(req.session.storedData2);
  149.         }
  150.     else
  151.         {
  152.  
  153.         res.sendFile( __dirname + "/" + "wrongpass.html");
  154.  
  155.       }
  156.  
  157.     }
  158.  
  159.     // Handle invalid login by redirecting the user to the login page once again
  160.  
  161.  else {
  162.       ///consoles
  163.       console.log("User Not found");
  164.  
  165.       res.sendFile( __dirname + "/" + "loginerror.html");
  166.     }
  167. }
  168. else {
  169.  
  170.      res.sendFile( __dirname + "/" + "ProjectPh1V1.html");
  171.  
  172.   }
  173.  
  174.   });
  175.  
  176.  app.get("/arraydata", function (req, res) {
  177.      console.log("storedData2: "+ req.session.storedData2);
  178.     res.send(req.session.storedData2);
  179. });
  180.  
  181. app.post('/array', function(req, res) {
  182.       ///consoles
  183.       console.log("harby's herbyes");
  184.  
  185.       var data = req.body;
  186.       ///consoles
  187.       console.log(data);
  188.    
  189.        fs.writeFile(__dirname + "/" + req.session.idUser + ".json", JSON.stringify(data), function (err) {
  190.  
  191.                if (err) return console.log(err);
  192.                  ///consoles
  193.                  console.log(JSON.stringify(data));
  194.                  console.log(req.session.idUser);
  195.             });  
  196.             ///I don't whether this matters or not  
  197.     res.send('success');
  198.     console.log('successsent');
  199.  
  200. });
  201.  
  202.  app.post('/register',urlencodedParser, function(req, res)
  203.  {
  204.        ///consoles
  205.        console.log("got here from ajax");
  206.  
  207.        var data = req.body;
  208.        ///consoles
  209.        console.log(data);
  210.  
  211.   var  username = data.name;
  212.   var  email = data.email;
  213.   var  password = data.password;
  214.    ///consoles
  215.   console.log(username);
  216.   console.log(email);
  217.   console.log(password);
  218.  
  219.   var f = 0
  220.   if (validateUsername(username) && validateEmail(email) && validatePassword(password))
  221.     f = 3;
  222.   else if (!validateUsername(username))
  223.     f = -1;
  224.   else if (!validatePassword(password))
  225.     f = -2;
  226.  
  227.   if (f == 3)
  228.   {
  229.     ///consoles
  230.     console.log("Correct front end validations");
  231.  
  232.         req.session.idUser = usersCount;
  233.         req.session.userNAME = username;
  234.    
  235.     newUser = {
  236.       "password" : password,
  237.       "username" : username,
  238.           "email" : email,
  239.           "id" : usersCount
  240.       }
  241.  
  242.     var flag = 0;
  243.     var usersCount=0
  244.     // Make sure this is a unique email address
  245.     fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
  246.       if (err)
  247.  
  248.         return console.error(err);
  249.  
  250.         userData = JSON.parse(data);
  251.         console.log(userData);
  252.        
  253.         flag = 0;
  254.         ///consoles
  255.         console.log('Going to check if there are duplicates');
  256.  
  257.         for (var user in userData)
  258.         {
  259.  
  260.           if(email.toLowerCase() === userData[user].email.toLowerCase())
  261.           {
  262.             flag=1;
  263.             break;
  264.           }
  265.  
  266.           usersCount++;
  267.          
  268.         }
  269.    
  270.       if (flag == 0)
  271.       {
  272.         ///consoles
  273.         console.log("ok no duplicates");
  274.          
  275.         req.session.idUser = usersCount;
  276.         req.session.userNAME = username;
  277.  
  278.         // Add user to the JSON file database and show the homepage again
  279.         fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
  280.           newUser = {
  281.             "password" : password,
  282.             "username" : username,
  283.                 "email" : email,
  284.                 "id" : usersCount
  285.             }
  286.             ///consoles
  287.           console.log("read users file!");
  288.  
  289.           if (err)
  290.             ///consoles
  291.             return console.error(err);
  292.  
  293.              userData = JSON.parse(data); // Converting it to string.
  294.              userData[usersCount] = newUser;
  295.              ///consoles
  296.              console.log(userData);
  297.  
  298.           fs.writeFile(__dirname + "/" + "users.json",JSON.stringify(userData), function (err) {
  299.  
  300.                    if (err)
  301.                        return console.log(err);
  302.                      ///consoles
  303.                    console.log(JSON.stringify(userData));
  304.            })
  305.              res.sendFile( __dirname + "/" + "validregister.html" );
  306.  
  307.              fs.writeFile(__dirname + "/" + req.session.idUser + ".json",JSON.stringify({"allTasksArray[]":[],"inProgressArray[]":[],"completedArray[]":[],"archivedArray[]":[]}));
  308.  
  309.              app.get('/homepage.html', function (req, res) {
  310.               delete req.session.email ;
  311.               delete req.session.storedData2;
  312.               res.sendFile( __dirname + "/" + "homepage.html" );
  313.           })
  314.  
  315.         });
  316.  
  317.          
  318.  
  319.       }
  320.       else
  321.       {
  322.         console.log("Yes, duplicates");
  323.  
  324.         res.sendFile( __dirname + "/" + "registererror.html");
  325.       }
  326.     })
  327.   }
  328.   else if (f == -2)
  329.   {
  330.     res.sendFile( __dirname + "/" + "passlength.html" );
  331.   }
  332.   else if (f == -1)
  333.   {
  334.     res.sendFile( __dirname + "/" + "usernamewrong.html");
  335.   }
  336.  })
  337.  
  338. app.get('/ProjectPh1V1.html', function(req, res){
  339.  
  340.   res.sendFile( __dirname + "/" + "ProjectPh1V1.html" );
  341.  
  342. })
  343.  
  344. // Add headers
  345. app.use(function (req, res, next) {
  346.  
  347.     // Website you wish to allow to connect
  348.     res.setHeader('Access-Control-Allow-Origin', "http://localhost:8081");
  349.  
  350.     // Request methods you wish to allow
  351.     res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
  352.  
  353.     // Request headers you wish to allow
  354.     res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
  355.  
  356.     // Set to true if you need the website to include cookies in the requests sent
  357.     // to the API (e.g. in case you use sessions)
  358.     res.setHeader('Access-Control-Allow-Credentials', true);
  359.  
  360.     // Pass to next layer of middleware
  361.     next();
  362. });
  363.  
  364. var server = app.listen(8081, function () {
  365.   var host = server.address().address
  366.   var port = server.address().port
  367.   console.log("App listening at http://%s:%s", host, port)
  368. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement