如何在node.js中实现它?

时间:2017-04-28 07:45:00

标签: javascript node.js

我有以下请求处理程序,可以使用Firebase登录用户。成功登录后,我想将用户重定向到另一个页面。

我会将window.location更改为(document).ready()javascript函数中的另一个页面吗?或者我会在这里实现更改,使用res.redirect(我尝试过)但没有任何反应,我只是在控制台中找回了状态代码。

app.post('/api/sign-in', function (req, res, next) {
    firebase.auth().signInWithEmailAndPassword(req.body.email, req.body.password).then(function (user) {
        console.log('a new user has signed in! their e-mail address: ' + user.email + ' | User ID: ' + user.uid)
    }).catch(function (error) {
        console.log(error)
    })
})

呼叫:

$("#sign-in").on('click', function (event) {
    event.preventDefault()
    $.ajax({
        url: '/api/sign-in',
        method: 'POST',
        data: {
            email: $('#email').val(),
            password: $('#password').val()
        }
    });
});

1 个答案:

答案 0 :(得分:0)

就像乔治所说,如果你正在做一个ajax帖子,它就不会重定向。

也许这样的事可以帮到你:

app.post('/api/sign-in', function (req, res, next) {
firebase.auth().signInWithEmailAndPassword(req.body.email, req.body.password).then(function (user) {
    res.send({ redirect: '/profile' })
}).catch(function (error) {
    console.log(error)
})})

使用Javascript:

$(document).ready(function () {
        $('#sign-in').click(function () {
            event.preventDefault()
            $.ajax({
                url: '/api/sign-in',
                method: 'POST',
                dataType: 'json',
                success: function (data, textStatus, jqXHR) {
                    if (typeof data.redirect === 'string') {
                        window.location = data.redirect;
                    }
                }
            });
        });
    });

希望它有用。