Использование хранилища сеансов с NodeJs и MySQL - PullRequest
0 голосов
/ 19 марта 2020

Я использую MySQL для получения данных с помощью формы входа. Я также использую node.js и pug для отображения нового содержимого после отправки / получения данных. Проблема, которую я обнаружил, заключается в том, что я не совсем уверен, сохраняется ли мое хранилище сеансов. Я проверил его на другой странице, и кажется, что он отображает «имя пользователя, вошедшего в систему», но как только я перенаправляю его на index.pug, ничего не отображается.

Вот мой node.js код:

const express = require('express');
let mysql = require('mysql');
const bodyParser = require('body-parser');
session = require('express-session');
const port = 3000;
let path = require('path');

/*Get database connection*/
let connection = mysql.createConnection({
    host: '', (hidden atm for security purposes)
    user: '',
    password: '',
    database: ""
});

/*Connect and console log if successful*/
connection.connect(function (err) {
    if(err) throw err;
    console.log("Connected");
});


const app = express();
app.use('/', express.static(__dirname + "/"));

/*For login*/
app.use(session({
    secret: 'secret',
    resave: true,
    saveUninitialized: true,
}));

app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());

app.set('views', path.join(__dirname, '/views'));

app.get('/', function (req, res) {
    res.sendFile('index.html', {root: __dirname});
});

app.listen(port, () => console.log(`Example app listening on port ${port}!`));

/*LOGIN*/
app.post('/auth', function(request, response) {
    let username = request.body.username;
    let password = request.body.password;
    if (username && password) {
        connection.query('SELECT * FROM userAccounts WHERE username = ? AND password = ?', [username, password], function(error, results) {
            if (results.length > 0) {
                request.session.loggedin = true;
                request.session.username = username;
                response.render('index.pug');
            } else {
                response.send('Incorrect Username and/or Password!');
            }
            response.end();
        });
    } else {
        response.send('Please enter Username and Password!');
        response.end();
    }
});

app.get('index.pug', function(request, response) {
    if (request.session.loggedin) {
/*
        response.setHeader('Content-Type', 'index.pug');
*/
        response.send('Welcome back, ' + request.session.username + '!');
    } else {
        response.send('Please login to view this page!');
    }
    response.end();
});

Нужно ли что-то добавить в мой index.pug или я что-то упустил? Я просто хочу отобразить имя пользователя, вошедшего в систему, вверху страницы ... а также убедиться, что мое хранилище сеансов сохраняется! Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...