Рендеринг вида после проверки входа пользователя

Я пытаюсь отобразить представление после того, как форма проверки входа создала сеанс после успешного ввода учетных данных.

Это представление Только должно быть доступно после процедуры входа в систему, но когда я ввожу URL-адрес (127.0.0.1:3000/новостная лента), страница «новостной ленты» загружается и обходит вход в систему. Я понимаю, что это может быть проблема, связанная с маршрутами, но я не могу заставить ее работать.

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

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

app.get('/', function(request, response) {
response.sendFile(path.join(__dirname + '/'));
});

// Checking credentials
app.post('/auth', function(request, response) {
var username = request.body.username;
var password = request.body.password;
if (username && password) {
    connection.query('SELECT * FROM accounts WHERE username = ? AND password 
= ?', [username, password], function(error, results, fields) {
        if (results.length > 0) {
            request.session.loggedin = true;
            request.session.username = username;
            response.redirect('authres');
        } else {
            response.send('Incorrect Username and/or Password!');
        }
        response.end();
    });
} else {
    response.send('Please enter Username and Password!');
    response.end();
}
});

//**Would like page to appear here instead of text**
app.get('/authres', function(request, response) {
if (request.session.loggedin) {
    response.send('Welcome back, ' + request.session.username + '!');


} else {
    response.send('Please login to view this page!');
}
response.end();
});

Методы в app.js

//uses routes
app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/newsfeed', newsfeedRouter);

Маршрут index.js для входа

router.get('/', function(req, res, next) {
res.render('index');
});

Маршрут newsfeed.js для страницы новостной ленты

router.get('/', function(req, res, next) {
res.render('newsfeed');
});
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
42
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
router.get('/', function(req, res, next) {
    res.render(req.session.loggedin?"newsfeed":"index");
});

Если пользователь вошел в систему, это отобразит представление ленты новостей.

Работает, спасибо! Только что сделал небольшую корректировку. Вместо router.get я сделал app.get. app.get('/', function(req, res, next) { res.render(req.session.loggedin?"newsfeed":"index"); });

Isaac Burlò 12.03.2019 15:00

Другие вопросы по теме