Перенаправление не работает с использованием node.js и ejs - PullRequest
0 голосов
/ 02 сентября 2018

Я потратил много времени на отладку следующей проблемы, но она не устранена. Проблема возникает всякий раз, когда пользователь нажимает кнопку, а методы window.locatoin.redirect и window.location.assign не работают.

Вот мой код index.ejs:

function registration() {
        $.post('/user/register', {
            teamName: $('#teamName').val(),
            faculty: $('#faculty').val(),
            email: $('#emailSignUp').val(),
            password: $('#passwordSignUp').val()
        }).done(
            window.location.assign('/scoreboard')
        )
    }

router.js:

router.post('/user/register', (req, res) => {
    var newUser = {
        teamName: req.body.teamName,
        faculty: req.body.faculty,
        email: req.body.email,
        password: req.body.password
    }
    userModel.create(newUser, (err, user) => {
        if (err) {
            console.log('[Registratoin]: ' + err);
        } else {
            console.log('[Registration]: Done');
            req.session.userID = user._id;
            res.redirect('/scoreboard')
        }
    });
})

router.get('/scoreboard', (req, res) => {
    userModel.find({}).sort('-score').exec((err, teams) => {
        if (err) {
            console.log('[scoreboard]: ' + err)
        }
        else{
            res.render('main/scoreboard', {
                teamInformation: teams
            }
        )
    }
    })
})

Когда я проверяю код, я вижу [Registration]: Done, зарегистрированный правильно. но перенаправление не работает. Как мне это исправить?

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

HTML5 ввел методы history.pushState() и history.replaceState(), которые позволяют добавлять и изменять записи истории соответственно.

history.pushState(null, null, "/scoreboard")

Более подробная информация о новых возможностях HTML5 для решения подобных проблем доступна здесь .

0 голосов
/ 02 сентября 2018

Пожалуйста, используйте location.href вместо location.assign, как показано ниже:

window.location.href = "/scoreboard";
...