У меня есть одностраничное приложение для чата с различными комнатами для присоединения и окном чата, которое отображается, когда пользователь нажимает на одну из них.
Чтобы убедиться, что окно чата остается открытым, еслиПользователь обновляет страницу, у меня в модели User есть переменная, значение которой по умолчанию равно False, меняется на True, когда пользователь щелкает, входит в комнату, и на False, когда они выходят из нее.
Я использую метод GETпроверить и изменить переменную в чате.Хотя ответ показывает, что значение переменной было правильно изменено, у меня есть кнопка отладки, которая просто возвращает объект 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, но методы console.log () в Контроллере полностью достигнуты.