Javascript Express Js Firebase SignOut()立即将状态200返回到客户端获取Post请求
我正在使用客户端javascript上的Fetch向使用ExpressJS和Firebase Auth的服务器端javascript发出POST请求。auth().signOut()返回200代码,但是.then部分代码永远不会执行,因为函数会立即将响应返回给客户端获取;因此,永远不会呈现我的下一个视图。如何使服务器端代码仅在执行部分服务器端代码后,才将200状态返回到客户端代码 这是我的密码: 服务器端:Javascript Express Js Firebase SignOut()立即将状态200返回到客户端获取Post请求,javascript,node.js,firebase,express,firebase-authentication,Javascript,Node.js,Firebase,Express,Firebase Authentication,我正在使用客户端javascript上的Fetch向使用ExpressJS和Firebase Auth的服务器端javascript发出POST请求。auth().signOut()返回200代码,但是.then部分代码永远不会执行,因为函数会立即将响应返回给客户端获取;因此,永远不会呈现我的下一个视图。如何使服务器端代码仅在执行部分服务器端代码后,才将200状态返回到客户端代码 这是我的密码: 服务器端: var logoutController = { //post logout
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);
});
});
我找到的解决方案是在客户端使用: window.location.pathname='/' 要重定向到我希望用户在注销后转到的页面,请执行以下操作