我有一个单页聊天应用程序,其中包含要加入的不同房间,并且一旦用户单击其中一个,便会显示聊天窗口。
为确保在用户刷新页面后聊天窗口保持打开状态,我的用户模型中有一个变量,默认为False,每当用户单击进入房间时,该变量均更改为True,而当其退出时将其更改为False
我正在使用GET方法来检查和更改in chat变量。虽然响应表明变量的值已正确更改,但我有一个调试按钮,该按钮仅返回User对象以检查变量的值,并且未更改。
客户
$(document).ready(function(){
$('.topic').click(function(){
$.get("/changeInChatStatus", function(data, status){
// The variable is shown to be changed in the response
console.log("inChat variable is set to: " + data);
});
});
});
服务器-路由
app.get('/changeInChatStatus', home.changeInChatStatus);
服务器-控制器
exports.changeInChatStatus = function(req, res, next) {
if (req.session.user && req.session.user.inChat == false) {
req.session.user.inChat = true;
res.send(req.session.user.inChat);
console.log("Status Changed to true");
} else if (req.session.user && req.session.user.inChat == true){
req.session.user.inChat = false;
res.send(req.session.user.inChat);
console.log("Status Changed to false");
}
}
知道为什么不更新吗?阅读了一些响应,提到了JavaScript的异步性,但是完全可以达到Controller中的console.log()方法。