会话变量未使用GET方法更新

时间:2018-12-08 12:13:42

标签: javascript node.js express asynchronous

我有一个单页聊天应用程序,其中包含要加入的不同房间,并且一旦用户单击其中一个,便会显示聊天窗口。

为确保在用户刷新页面后聊天窗口保持打开状态,我的用户模型中有一个变量,默认为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()方法。

0 个答案:

没有答案