Express Js Firebase SignOut () немедленно возвращает статус 200 клиентской стороне Fetch Post request - PullRequest
0 голосов
/ 28 сентября 2019

Я делаю POST-запрос, используя Fetch на своем клиентском javascript для моего серверного javascript, который использует Express Js и Firebase Auth.Auth (). SignOut () возвращает код 200, но часть моего кода никогда не выполняется, так как функция немедленно возвращает ответ на выборку на стороне клиента;поэтому никогда не отрисовываю свой следующий взгляд.Как сделать так, чтобы мой код на стороне сервера возвращал статус 200 для моего кода на стороне клиента только после выполнения части кода .hen тогда на стороне сервера?

Вот мой код:

Сторона сервера:

var logoutController = {

    //post logout user function
    logout: function(req, res, next) {
        var context, view;

        firebase.auth().signOut().then(function(data){
            view = 'index';
            context = {
                error: false,
            };
            res.render(view, context);

        }).catch(function(error) {
            var errorCode = error.code;
            var errorMessage = error.message;
            view = 'index'; //Change to an error page
            context = {
                error: true,
            };
            res.render(view, context);
        });

    }, 

} //end logoutController

router.post("/logout", logoutController.logout);

Код клиентской стороны:

var button = document.getElementById("logoutButton");

button.addEventListener('click', function(e) {

    fetch('/logout', {
    method: 'POST',
    headers: {
        "Content-Type": "application/json"
    },
    })
    .then(function(response) {
      if(response.ok) {
        return;
      }
      throw new Error('Request failed.');
    })
    .catch(function(error) {
      alert(error);
    });

});

1 Ответ

0 голосов
/ 28 сентября 2019

Решение, которое я нашел, состояло в том, чтобы использовать на стороне клиента:

window.location.pathname = '/'

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

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