Почему мое свойство сеанса не отображается на всех страницах в e js? - PullRequest
0 голосов
/ 28 марта 2020

Я новичок в node.js и узнаю о сессиях. У меня есть кнопка входа в систему, которая направляет запрос на публикацию с именем / login, и в этом запросе я пытаюсь создать новый сеанс, используя объект userprofile. Этот объект userprofile теперь жестко запрограммирован с заданными свойствами. Затем я устанавливаю этот объект в сеанс и рендеринг в представления. Я хочу, чтобы представления захватили свойство username этого объекта userprofile, хранящегося в сеансе. У меня есть условие, чтобы проверить, если пользователь был представлен в представлении. Если сеанс не создан, пользователь-заполнитель отправляется правильно, но если сеанс создан, будет отображаться имя пользователя. Если я перехожу на другую страницу, объект сеанса снова считается неопределенным, и я не знаю, почему, пользовательский заполнитель снова появляется и имя пользователя исчезает, даже если сеанс все еще существует. Любая помощь будет оценена.

router.post('/login', urlencodedParser, function(req, res) {
  if(!req.session.theUser) {
    var newUser = new theUser('0', 'bob', 'jones', 'bob@gmail.com', 'address', 'US');
    req.session.theUser = newUser;
    res.render('login', {theUser: req.session.theUser});
    console.log(req.session.theUser.userFname);
  } else {
    res.render('savedLibraries' );
  }
});
<%if(typeof theUser != 'undefined') { %>
  <li><a><%= theUser.username %></a></li>
<%}else if(typeof theUser == 'undefined'){ %>
  <li><a>User</a></li>
<%}%>

1 Ответ

0 голосов
/ 29 марта 2020

Правильный ответ, который я нашел, состоял в том, чтобы отправить объект сеанса в каждое отдельное представление.

...