Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const
- express = require('express'), //include express module
- Url = require('url'), //include url module
- bodyParser = require('body-parser'), //for post requests
- mysql = require('mysql'), //include mySQL module
- cookieParser = require('cookie-parser'),
- session = require('express-session'),
- app = express(); //server
- var jsonParser = bodyParser.json();
- app.use(jsonParser);
- var connection = mysql.createConnection({ //connecting to database
- host: '127.0.0.1', //ip adress
- user: 'admin', //name of user in mySQL
- password: '123', //user password
- database: 'news' //database name
- });
- connection.connect(function(err) { //establishing connecting to DB
- if (err) throw err; //if we have some exception
- console.log('Connected!'); //if everything is OK
- });
- app.set('view engine', 'ejs'); //connect ejs to application
- app.use('/public', express.static('public')); //using static folder for css and more
- app.use(bodyParser.urlencoded({ extended: true })); //using body parser for POST requests
- var user = {
- username: 'moderator',
- password: '123'
- }
- var sessionHandler = require('./js/sessionHandler');
- var store = sessionHandler.createStore();
- app.use(cookieParser());
- app.use(session({
- store: store,
- resave: false,
- saveUninitialized: true,
- secret: 'supersecret'
- }));
- //generate root page for user
- app.get('/', function(request,response) {
- connection.query('SELECT title, text, date FROM news', function(err, result) {
- if (err) throw err;
- response.render('user', { posts: result });
- response.end();
- });
- });
- //genetate moderator page
- app.get('/moderator', function(request,response) {
- if (request.session.username == 'moderator') {
- connection.query('SELECT title, text, date FROM news', function(err, result) {
- if (err) throw err;
- response.render('moderator', { posts: result });
- response.end();
- });
- } else {
- response.status(403).send('Access Denied!');
- }
- });
- app.get('/log-in', function(request, response) {
- response.render('log-in');
- });
- app.get('/log-out', function(request, response) {
- console.log('logging out!' + request.session.username);
- request.session.username = '';
- console.log('logged out!' + request.session.username);
- response.redirect('/log-in');
- response.end();
- });
- app.post('/log-in', function(request, response) {
- console.log('Request body username: ' + request.body.username);
- console.log('Request body password: ' + request.body.password);
- console.log('User Username: ' + user.username);
- console.log('User Password: ' + user.password);
- var foundUser;
- if (user.username == request.body.username && user.password == request.body.password)
- foundUser = user.username;
- console.log('Found User: ' + foundUser);
- if (foundUser !== undefined) {
- request.session.username = request.body.username;
- response.redirect('/moderator');
- console.log('Session Username: ' + request.session.username);
- console.log('____________________________');
- } else {
- response.status(401).send('Login Error!');
- }
- });
- //add new post to DB
- app.post('/moderator', function(request, response) {
- if (!request.body) return sendStatus(400);
- var //date of adding new post
- date = new Date(),
- postDate = date.getDate() + '/' + date.getMonth() + '/' + date.getFullYear();
- //push into DB
- connection.query('INSERT INTO news(`title`, `text`, `date`) VALUES(' + ''' + request.body.title + ''' + ',' + ''' + request.body.text + ''' + ',' + ''' + postDate + ''' + ')', function(err, result) {
- if (err) throw err;
- });
- response.redirect('/moderator');
- response.end();
- });
- app.listen(8080); //listening to the port
- const
- cookieParser = require('cookie-parser'),
- session = require('express-session'),
- MSSQLStore = require('express-mysql-session')(session),
- mssql = require('mssql');
- module.exports = {
- createStore: function() {
- var config = {
- user: 'admin',
- password: '123',
- server: '127.0.0.1',
- database: 'news',
- port: 3306,
- pool: {
- max: 10,
- min: 0,
- idleTimeoutMillis: 30000
- }
- }
- return new MSSQLStore(config);
- }
- }
- <script>
- window.onload = function() {
- var
- logIn = document.getElementById('log_in'),
- userLogin = document.getElementById('login'),
- userPass = document.getElementById('password');
- logIn.onclick = function() {
- var xhr = new XMLHttpRequest();
- xhr.open('POST', '/log-in');
- var userData = {
- username: userLogin.value,
- password: userPass.value
- };
- xhr.setRequestHeader('Content-Type', 'application/json');
- xhr.send(JSON.stringify(userData));
- };
- }
- </script>
- <script>
- window.onload = function() {
- var logOut = document.getElementById('log_out');
- logOut.onclick = function() {
- var xhr = new XMLHttpRequest();
- xhr.open('GET', '/log-out');
- xhr.send();
- };
- }
- </script>
- Connected!
- Request body username: moderator
- Request body password: 123
- User Username: moderator
- User Password: 123
- Found User: moderator
- Session Username: moderator
- ____________________________
- Request body username: undefined
- Request body password: 123
- User Username: moderator
- User Password: 123
- Found User: undefined
- logging out!moderator
- logged out!
Add Comment
Please, Sign In to add comment