Good day to all. During the development of the site on node js I needed to do: I have 2 menus on my right side of the page. One of them (login menu) should be displayed if the user is not logged in, the second if logged in. I pulled it all out with ejs and put it in js (with check).
module.exports.rightSide = function (req,res,next) { sess = req.session; if(sess.email==undefined) { menu = '<div id="login_form">' + '<div id="login_form_title">' + '<h2>' + '<span class="lang" key="login">' + 'увійти до системи' + '</span>' + '</h2>' + '</div>' + '<p>'+'</p>'+ '<form id="login" action="/login" method="POST">' + '<input type="text" name="email" id="email" placeholder="username" required="true">' + '<br>' + '<br>' + '<input type="password" name="password" id="password" placeholder="password">' + '<br>' + '<br>' + '<input type="submit" name="submit" id="submit" value="Submit" onclick="lgs">' + '</form>' + '<div id="ger_forg">' + '<div class="row">' + '<div class="col-xs-7 col-sm-7 col-md-7 col-lg-7">' + '<div id="registration">' + '<a href="#openModal">' + '<span class="lang" key="registration">' + 'реєстрація' + '</span>' + '</a>' + '</div>' + <!-- Registration form--> '<div id="openModal" class="modalDialog">' + '<div>' + '<a href="#close" title="Закрити" class="close">' + 'X' + '</a>' + '<h3 class="lang" key="type-text">' + 'Заповніть усі поля:' + '</h3>' + '<p style="color: red">' + req.session.em + '</p>'+ '<form action="/registration" method="POST" id="regForm" autocomplete="on">' + '<p>' + '<span class="lang" key="last-name">' + 'Прізвище' + '</span>' + '<br>' + '<input type="text" name="lastName" required>' + '</p>' + '<p>' + '<span class="lang" key="name">' + 'Ім\'я' + '</span>' + '<br>' + '<input type="text" name="name" required>' + '</p>' + '<p>' + '<span class="lang" key="telephone">' + 'Телефон' + '</span>' + '<br>' + '<input type="tel" name="tel" required>' + '</p>' + '<p>' + '<span class="lang" key="e-mail">' + 'Електронна пошта' + '</span>' + '<br>' + '<input type="email" name="mail" required>' + '</p>' + '<p>' + '<span class="lang" key="login">' + 'Логін' + '</span>' + '<br>' + '<input type="text" name="login" required>' + '</p>' + '<p>' + '<span class="lang" key="password">' + 'Пароль' + '</span>' + '<br>' + '<input type="password" name="password" maxlength="13" required>' + '</p>' + '<p>' + '<span class="lang" key="repeat-password">' + 'Повторіть пароль' + '</span>' + '<br>' + '<input type="password" name="repeatPassword" maxlength="13" required>' + '</p>' + <!-- Re-captcha --> '<input type="submit" id="send" value="Надіслати" name="submit">' + '</form>' + '</div>' + '</div>' + <!-- End of registration form--> '</div>' + '<div class="col-xs-5 col-sm-5 col-md-5 col-lg-5">' + '<div id="forgot_password">' + '<a href="">' + '<span class="lang" key="forgotPassword">' + 'забули пароль' + '</span>' + '</a>' + '</div>' + '</div>' + '</div>' + '</div>' + '</div>'; }else { menu = '<div id="question">' + '<div class="row">' + '<div class="col-xs-9 col-sm-9 col-md-9 col-lg-9">' + '<div id="employee_name">' + '<h2>' + '<a href="">' + sess.fName +' '+ sess.lName + '</a>' + '</h2>' + '</div>' + '</div>' + '<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3">' + '<div id="gear_ico">' + '<img src="images/gear_ico.png" alt="">' + '</div>' + '</div>' + '</div>' + '<ul id="question_menu">' + '<li id="status_waiting">' + '<a href="">' + 'Питання з дуже-дуже довже...' + '</a>' + '</li>' + '<li id="status_done">' + '<a href="">' + 'Якесь виконане питання' + '</a>' + '</li>' + '<li id="status_denied">' + '<a href="">' + 'Питання, що відхилено' + '</a>' + '</li>' + '</ul>' + '<ul id="add_question">' + '<li id="plus">' + '<a href="">' + '<span class="lang" key="addQuestion">' + 'Додати питання' + '</span>' + '</a>' + '</li>' + '</ul>' + '<div class="row">' + '<div class="col-xs-9 col-sm-9 col-md-9 col-lg-9">' + '<div id="all_questions">' + '<a href="">' + '<span class="lang" key="allQuestions">' + 'усі питання(12)' + '</span>' + '</a>' + '</div>' + '</div>' + '<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3">' + '<div id="exit">' + '<a href="/logout">' + '<span class="lang" key="exit">' + 'вийти' + '</span>' + '</a>' + '</div>' + '</div>' + '</div>' + '</div>'; } return menu; };
This is how the ejs file looked like
<aside> <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4"> <%- menu %> </div> And now the crux of the problem: I need to add the same variable to the js file. as in ejs type <% - menu%> described in the router
router.get('/', function( req, res, next) { //var errorr = erR.er(req,res,next); var men = menu.rightSide(req,res,next); sess = req.session; res.render ( 'index', { title: 'site a3boot', news_text: text, menu : men } ); });