В одном из моих узловых файлов у меня есть функция, выполняемая для каждой страницы (простая реализация входа в систему). В приведенном ниже коде панель чата будет отображаться только для определенного маршрута. Мой поток для страницы таков:
-Клиент входит в систему... нажимает '/' и запускает приведенную ниже функцию. показатьчатбар = ложь. -сразу же страница перенаправляется на маршрут «/chat». показатьчатбар = истина. Теперь должна отображаться панель чата. Однако это не так.
Я думаю, что... это происходит так быстро, что showChatBar=true никогда не загружается. Может проблема с асинхронностью? Может что-то с рес.рендером?
вот мой код node.js
exports.login = function (req, res) {
var showChatBar = false, navButton = '', navTitle='',navSubTitle='';
if(typeof req.url !='undefined'){
if(req.url.indexOf('chat')!=-1){
//Consumer View
showChatBar = true;
navButton = "close";
}
if(req.url.indexOf('agent')!=-1){
//Agent View
navButton = "close";
navTitle='My Clients';
}
}
if(typeof req.headers.referer != 'undefined'){
if(req.headers.referer.indexOf('agent')!=-1){
//Agent Chat View
navButton = "back";
}
}
res.render('index', {title: 'Express', showChatBar: showChatBar, navButton:navButton, navTitle:navTitle,navSubTitle:navSubTitle});
};
Вот часть EJS:
<script>
var chatBar =<%= showChatBar %>, navButton='<%= navButton %>', navTitle='<%= navTitle %>',navSubTitle='<%= navSubTitle %>';
</script>
Мысли о том, почему это неправильно обновляет шаблон с showChatBar = true?