Advertisement
Guest User

xDD

a guest
Feb 3rd, 2019
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const express = require('express');
  2. const session = require('express-session');
  3. const cookieParser = require('cookie-parser');
  4. const bodyParser = require('body-parser');
  5. const crypto = require('crypto');
  6. const path = require('path');
  7. const mysql = require('mysql');
  8. var MySQLStore = require('express-mysql-session')(session);
  9.  
  10. //START APP
  11. const app = express();
  12.  
  13. //SESSION-STORE CONFIG
  14. var options = {
  15.     host: 'localhost',
  16.     user: 'root',
  17.     password: '',
  18.     database: 'nodedb'
  19. };
  20.  
  21. //SESSION-STORE START
  22. var sessionStore = new MySQLStore(options);
  23.  
  24. // MYSQL CONFIG
  25. const db = mysql.createConnection ({
  26.   host: 'localhost',
  27.   user: 'root',
  28.   password: '',
  29.   database: 'nodedb'
  30. });
  31.  
  32. //MYSQL CONNECTION
  33. db.connect((err) => {
  34.   if(err) throw err;
  35.   console.log('Connected to database!');
  36. });
  37.  
  38. //APP CONFIGURATION
  39. app.set('view engine', 'ejs');
  40. app.set('views', path.join(__dirname, '/views/pages'));
  41. app.use(bodyParser.urlencoded({extended : true}));
  42. app.use(bodyParser.json());
  43. app.use(cookieParser());
  44. app.use(session({
  45.     key: 'session_cookie_name',
  46.     secret: 'session_cookie_secret',
  47.     store: sessionStore,
  48.     resave: false,
  49.     saveUninitialized: false
  50. }));
  51.  
  52. //GET ROUTES
  53. app.get('/', (req, res) => {
  54.     let succMessage = req.session.succMessage;
  55.     let errMessage = req.session.errMessage;
  56.     req.session.succMessage = '';
  57.     req.session.errMessage = '';
  58.     res.render('index', { succMessage : succMessage,
  59.                           errMessage : errMessage });
  60. });
  61.  
  62. app.get('/logged', (req, res) => {
  63.   res.render('logged', { user : req.session.user[0] });
  64. });
  65.  
  66. app.get('/logout', (req, res) => {
  67.   req.session.destroy((err) => {
  68.   if(err) throw err;
  69.   });
  70.   res.redirect('/');
  71. });
  72.  
  73. //POST ROUTES
  74. app.post('/login', (req, res) => {
  75.   let login = req.body.login;
  76.   let password = req.body.password;
  77.  
  78.   db.query("SELECT * FROM `users` WHERE username = ?", [login], (err, result) => {
  79.     if(err) throw err;
  80.     if(result.length > 0) {
  81.       if(password == result[0].password) {
  82.         req.session.user = result;
  83.         req.session.logged = true;
  84.         res.redirect('/logged');
  85.       }
  86.       else {
  87.         req.session.errMessage = 'Wrong password';
  88.         res.redirect('/');
  89.       }
  90.     }
  91.     else {
  92.       req.session.errMessage = 'Wrong username';
  93.       res.redirect('/');
  94.     }
  95.   });
  96. });
  97.  
  98. app.post('/register', (req, res) => {
  99.   let login = req.body.login;
  100.   let password = req.body.password;
  101.  
  102.   db.query("SELECT * FROM `users` WHERE username = ?", [login], (err, result) => {
  103.     if(err) throw err;
  104.     if(result.length > 0) {
  105.       req.session.errMessage = 'Username already taken';
  106.       res.redirect('/');
  107.     }
  108.     else {
  109.       db.query("INSERT INTO `users` (`id`, `username`, `password`) VALUES (NULL, ?, ?)", [login, password], (err, result) => {
  110.         if(err) throw err;
  111.         req.session.succMessage = 'Successfully registered!';
  112.         res.redirect('/');
  113.       });
  114.     }
  115.   });
  116. });
  117.  
  118. app.listen(3000);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement