Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require('express');
- var app = express();
- var bodyParser = require('body-parser');
- var fs = require("fs");
- var session = require('express-session');
- // Create application/x-www-form-urlencoded parser
- app.use(bodyParser.urlencoded({ extended: false }));
- app.use(bodyParser.json());
- app.use(session({
- secret: 'ssshhhhh',
- resave: true,
- saveUninitialized: true
- }));
- var loggedIn = false;
- //the id of this user
- var thisUser;
- /**** get the default project html ******/
- var arrays;
- var sess;
- app.get('/', function (req, res) {
- if(!loggedIn) {
- res.sendFile( __dirname + "/projectPH1 23 69/" + "login.html" );
- }
- else {
- res.sendFile(__dirname + "/projectPH1 23 69/" + "ToDoList.html");
- }
- });
- app.get("/signup", function(req, res) {
- if(!loggedIn) {
- res.sendFile(__dirname + "/projectPH1 23 69/" + "Sign-Up.html" );
- }
- else {
- res.sendFile(__dirname + "/projectPH1 23 69/" + "ToDoList.html");
- }
- });
- app.get("/css/" + "awesome-bootstrap-checkbox.css", function(req, res) {
- res.sendFile(__dirname + "/projectPH1 23 69/css/" + "awesome-bootstrap-checkbox.css");
- });
- app.get("/js/" + "data.js", function(req, res) {
- res.sendFile(__dirname + "/projectPH1 23 69/js/" + "data.js");
- });
- app.post("/login", function(req, res) {
- sess = req.session;
- if(!loggedIn) {
- sess.email = req.body.email;
- sess.password = req.body.password;
- var usersData
- fs.readFile(__dirname + "/database/" + "users.json", 'utf8', function (err, data) {
- if(err) {
- console.log("failed to open file: %s", err);
- }
- try {
- usersData = JSON.parse(data);
- } catch(ex) {
- console.log(ex);
- }
- for(var user in usersData) {
- if(usersData[user].email === sess.email && usersData[user].password === sess.password) {
- loggedIn = true;
- thisUser = usersData[user].id;
- break;
- }
- }
- if(loggedIn) {
- res.sendFile(__dirname + "/projectPH1 23 69/" + "ToDoList.html");
- fs.readFile(__dirname + "/database/data/" + "user" + thisUser + ".json", 'utf8', function (err, data) {
- if (err) {
- console.log("failed to open file: %s", err);
- }
- else {
- try{
- arrays = JSON.parse(data);
- } catch(ex) {
- console.log(ex);
- }
- }
- });
- }
- else {
- res.sendFile(__dirname + "/projectPH1 23 69/" + "Login Error.html")
- }
- });
- } else {
- res.sendFile(__dirname + "/projectPH1 23 69/" + "ToDoList.html");
- }
- req.session.save();
- });
- app.post("/arraydata", function (req, res) {
- res.send(arrays);
- });
- app.post("/register", function(req, res) {
- if(!loggedIn) {
- sess = req.session;
- sess.name = req.body.name;
- sess.email = req.body.email;
- sess.password = req.body.password;
- sess.passwordConfirmation = req.body.pwConfirmation;
- var emailRegex =/^(([^<>()\[\]\\.,;:\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,}))$/;
- var correctPassword = (sess.password.length >= 5) && (ses.passwordConfirmation === ses.password);
- var correctEmail = emailRegex.test(email);
- var emailRegistered = false;
- var nameRegex = /^[a-zA-Z ]{1,31}$/;
- var correctName = nameRegex.test(name.trim());
- var usersData;
- var currentUser = 1;
- var correctInput = correctName && correctEmail && correctPassword;
- fs.readFile(__dirname + "/database/" + "users.json", 'utf8', function (err, data) {
- if(err) {
- console.log("failed to open file: %s", err);
- }
- //gets the users data from the json
- //and stores it as a javascript object
- try {
- usersData = JSON.parse(data);
- } catch(ex){
- console.log(ex);
- }
- if(correctInput) {
- for(var user in usersData) {
- currentUser++;
- if(usersData[user].email === sess.email) {
- emailRegistered = true;
- }
- }
- }
- if(correctInput && !emailRegistered) {
- if(currentUser == 1) {
- usersData = {};
- }
- thisUser = currentUser;
- usersData["user" + currentUser] = {
- email: sess.email,
- password: sess.password,
- name: sess.name,
- id: currentUser
- };
- fs.writeFile(__dirname + "/database/" + "users.json",JSON.stringify(usersData), function (err) {
- if (err) return console.log(err);
- //console.log(JSON.stringify(data));
- });
- res.sendFile(__dirname + "/projectPH1 23 69/" + "ToDoList.html" );
- loggedIn = true;
- }
- else {
- if(correctName && correctEmail && !correctPassword) {
- res.sendFile(__dirname + "/projectPH1 23 69/" + "Sign-Up Error Password.html");
- }
- else if((!correctEmail || !correctName)) {
- res.sendFile(__dirname + "/projectPH1 23 69/" + "Sign-Up Error Email.html");
- }
- else if(emailRegistered) {
- res.sendFile(__dirname + "/projectPH1 23 69/" + "Sign-Up Error Already Registered.html");
- }
- }
- });
- } else {
- res.sendFile(__dirname + "/projectPH1 23 69/" + "ToDoList.html");
- }
- req.session.save();
- });
- app.post("/logout", function(req, res) {
- loggedIn = false;
- res.sendFile( __dirname + "/projectPH1 23 69/" + "login.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();
- });
- app.post('/array', function(req, res) {
- sess = req.session;
- sess.data = req.body;
- fs.writeFile(__dirname + "/database/data/" + "user" + thisUser + ".json",JSON.stringify(sess.data), function (err) {
- if (err) return console.log(err);
- //console.log(JSON.stringify(data));
- });
- /** fs.readFile( __dirname + "/" + "tables.json", 'utf8', function (err, data) {
- var x = JSON.parse(JSON.parse( data )["inProgressArray[]"])[0];
- console.log(x);
- }); **/
- res.send('success');
- req.session.save();
- });
- app.get("*", function(req, res){
- if(!loggedIn) {
- res.sendFile(__dirname + "/projectPH1 23 69/" + "login.html");
- }
- else {
- res.sendFile(__dirname + "/projectPH1 23 69/" + "ToDoList.html");
- }
- });
- var server = app.listen(8081, function () {
- console.log("todo list app listening at http://127.0.0.1:8081");
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement