Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require('express');
- var app = express();
- var fs = require("fs");
- var bodyParser = require('body-parser');
- // Create application/x-www-form-urlencoded parser
- var urlencodedParser = bodyParser.urlencoded({ extended: false })
- var authenticatedUser = null;
- var session = require("express-session");
- app.use(express.static('Front End'));
- app.use(bodyParser.json());
- // Session
- app.use(session({
- secret : "HAHAH999AHAHthis##tod@@am#n##comp%%lexHAHAHAHAH",
- resave : false,
- saveUninitialized :true
- })
- );
- // Email validation funciton
- function validateEmail(email)
- {
- // using regular expression.
- if (email.length > 0)
- {
- 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,}))$/;
- return re.test(email);
- }
- else
- return false;
- }
- // Password validation function
- function validatePassword(pass)
- {
- if (pass.length < 5)
- return false;
- else
- return true;
- }
- // Username validation function
- function validateUsername(name)
- {
- if (name.length > 0)
- return /^[a-zA-Z]*$/.test(name);
- else
- return false;
- }
- // Number of users already registered
- /**** This part to handle default request url= localhost:8081 ******/
- app.get('/', function (req, res) {
- res.sendFile( __dirname + "/" + "homepage.html" );
- })
- app.get('/homepage.html', function (req, res) {
- delete req.session.email;
- delete req.session.storedData2;
- res.sendFile( __dirname + "/" + "homepage.html" );
- })
- app.post('/login', urlencodedParser, function (req, res) {
- if(!req.session.email)
- {
- // Get the values of the input text email & password
- var email = req.body.email;
- var password = req.body.password;
- var userData;
- var loggedIn = false;
- ///consoles
- console.log(email);
- console.log(password);
- // Read JSON file containing the users to verify that the user is already registered and have access
- var data = fs.readFileSync( __dirname + "/" + "users.json", 'utf8');
- // Note that err here is for handling any error occuring in opening the file
- userData = JSON.parse(data);
- var flag = 0;
- for (var user in userData)
- {
- if((email.toLowerCase() === userData[user].email.toLowerCase()))
- {
- console.log ("userCo "+user);
- break;
- }
- }
- console.log(userData[user].id);
- if (password === userData[user].password){
- req.session.userNAME = userData[user].username;
- req.session.idUser = userData[user].id;
- console.log(req.session.idUser);
- loggedIn = true;
- if(loggedIn == true)
- {
- req.session.email = email;
- ///consoles
- console.log(password);
- console.log(userData[user].username);
- console.log("This is the tasks page");
- console.log(req.session.idUser);
- res.sendFile( __dirname + "/" + "ProjectPh1V1.html");
- ///consoles
- console.log("herewe areee");
- try {
- var storedData = fs.readFileSync(__dirname + "/" + req.session.idUser + ".json", 'utf8');
- req.session.storedData2 = JSON.parse(storedData);
- req.session.storedData2["name"] = req.session.userNAME;
- ///consoles
- console.log(req.session.userNAME);
- console.log("Line 135: " +req.session.storedData2);
- }catch (ex)
- {
- ///consoles
- console.log(ex);
- req.session.storedData2["name"] = req.session.userNAME;
- ///consoles
- console.log(req.session.userNAME);
- }
- ///consoles
- console.log(req.session.storedData2);
- }
- else
- {
- res.sendFile( __dirname + "/" + "wrongpass.html");
- }
- }
- // Handle invalid login by redirecting the user to the login page once again
- else {
- ///consoles
- console.log("User Not found");
- res.sendFile( __dirname + "/" + "loginerror.html");
- }
- }
- else {
- res.sendFile( __dirname + "/" + "ProjectPh1V1.html");
- }
- });
- app.get("/arraydata", function (req, res) {
- console.log("storedData2: "+ req.session.storedData2);
- res.send(req.session.storedData2);
- });
- app.post('/array', function(req, res) {
- ///consoles
- console.log("harby's herbyes");
- var data = req.body;
- ///consoles
- console.log(data);
- fs.writeFile(__dirname + "/" + req.session.idUser + ".json", JSON.stringify(data), function (err) {
- if (err) return console.log(err);
- ///consoles
- console.log(JSON.stringify(data));
- console.log(req.session.idUser);
- });
- ///I don't whether this matters or not
- res.send('success');
- console.log('successsent');
- });
- app.post('/register',urlencodedParser, function(req, res)
- {
- ///consoles
- console.log("got here from ajax");
- var data = req.body;
- ///consoles
- console.log(data);
- var username = data.name;
- var email = data.email;
- var password = data.password;
- ///consoles
- console.log(username);
- console.log(email);
- console.log(password);
- var f = 0
- if (validateUsername(username) && validateEmail(email) && validatePassword(password))
- f = 3;
- else if (!validateUsername(username))
- f = -1;
- else if (!validatePassword(password))
- f = -2;
- if (f == 3)
- {
- ///consoles
- console.log("Correct front end validations");
- req.session.idUser = usersCount;
- req.session.userNAME = username;
- newUser = {
- "password" : password,
- "username" : username,
- "email" : email,
- "id" : usersCount
- }
- var flag = 0;
- var usersCount=0
- // Make sure this is a unique email address
- fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
- if (err)
- return console.error(err);
- userData = JSON.parse(data);
- console.log(userData);
- flag = 0;
- ///consoles
- console.log('Going to check if there are duplicates');
- for (var user in userData)
- {
- if(email.toLowerCase() === userData[user].email.toLowerCase())
- {
- flag=1;
- break;
- }
- usersCount++;
- }
- if (flag == 0)
- {
- ///consoles
- console.log("ok no duplicates");
- req.session.idUser = usersCount;
- req.session.userNAME = username;
- // Add user to the JSON file database and show the homepage again
- fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
- newUser = {
- "password" : password,
- "username" : username,
- "email" : email,
- "id" : usersCount
- }
- ///consoles
- console.log("read users file!");
- if (err)
- ///consoles
- return console.error(err);
- userData = JSON.parse(data); // Converting it to string.
- userData[usersCount] = newUser;
- ///consoles
- console.log(userData);
- fs.writeFile(__dirname + "/" + "users.json",JSON.stringify(userData), function (err) {
- if (err)
- return console.log(err);
- ///consoles
- console.log(JSON.stringify(userData));
- })
- res.sendFile( __dirname + "/" + "validregister.html" );
- fs.writeFile(__dirname + "/" + req.session.idUser + ".json",JSON.stringify({"allTasksArray[]":[],"inProgressArray[]":[],"completedArray[]":[],"archivedArray[]":[]}));
- app.get('/homepage.html', function (req, res) {
- delete req.session.email ;
- delete req.session.storedData2;
- res.sendFile( __dirname + "/" + "homepage.html" );
- })
- });
- }
- else
- {
- console.log("Yes, duplicates");
- res.sendFile( __dirname + "/" + "registererror.html");
- }
- })
- }
- else if (f == -2)
- {
- res.sendFile( __dirname + "/" + "passlength.html" );
- }
- else if (f == -1)
- {
- res.sendFile( __dirname + "/" + "usernamewrong.html");
- }
- })
- app.get('/ProjectPh1V1.html', function(req, res){
- res.sendFile( __dirname + "/" + "ProjectPh1V1.html" );
- })
- // Add headers
- app.use(function (req, res, next) {
- // Website you wish to allow to connect
- res.setHeader('Access-Control-Allow-Origin', "http://localhost:8081");
- // Request methods you wish to allow
- res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
- // Request headers you wish to allow
- res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
- // Set to true if you need the website to include cookies in the requests sent
- // to the API (e.g. in case you use sessions)
- res.setHeader('Access-Control-Allow-Credentials', true);
- // Pass to next layer of middleware
- next();
- });
- var server = app.listen(8081, function () {
- var host = server.address().address
- var port = server.address().port
- console.log("App listening at http://%s:%s", host, port)
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement