Для появления сеанса необходимо обновить представление - PullRequest
0 голосов
/ 06 июня 2019

Я делал простую систему входа в систему и использую sequelize , сохраняя сеанс в express-session-sequelize . Весь процесс работает хорошо, но когда я вхожу в систему, мне приходится обновлять страницу, чтобы вид изменится с формы входа на Welcome back ..., bro! . У меня есть всплывающее окно входа в систему / путь.

exports.postLogin = (req, res, next) => {
const username = req.body.username;
const password = req.body.password;

User.findOne({
    where: {
        username: username,
        password: password
    }
})
.then(user => {
    req.session.logged = true;
    req.session.user = user;
    res.redirect('/');
})
.catch(err => {
    console.log(err);
});}


exports.getIndex = (req, res, next) => {
Book.findAll()
.then(books => {
    res.render(('index.ejs'), {
        title: "Main Page",
        books: books,
        logged: req.session.logged,
        user: req.session.user
    })
}).catch(err => {
    console.log(err);
});}

и часть, в которой я отображаю свой вид

            <% if (logged) { %>
                <p>Welcome back <%= user.username %>, bro!</p>
                <a href='/logout'>Logout!</a>
            <% } else { %>
                <p class='container-box-title'>Login Window</p>
                <form class='login-form' action="/login" method="POST">
                    <input class="input" name="username" placeholder="Username" type="text">
                    <input class="input" name="password" placeholder="Password" type="password">
                    <input class="button" type="submit">
                </form>
            <% } %>

Итак, если я напишу правильную информацию, я нажму кнопку «Войти», она перенаправит меня на «/», что я и хочу, но форма входа все еще там. Я обновляю страницу, затем она меняется на С возвращением ... братан! , еще раз спасибо!


РЕДАКТИРОВАТЬ: похоже, что я перенаправил страницу перед сохранением куки, выполнив:

    .then(user => {
    req.session.logged = true;
    req.session.user = user;
    req.session.save((err) => {
        if (err) {
            console.log(err);
        } else {
            res.redirect('/');
        }
    });

})

проблема была решена!

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