Данные сеанса входа в систему nodejs не могут распечатать другое свойство маршрута - PullRequest
0 голосов
/ 02 ноября 2019

У меня 2 пути домой и регистрация. Я не использую какой-либо пакет авторизации для входа в систему. Мой маршрут регистрации:

///login Route

    router.post('/login', [
        //   check('title').not().isEmpty(),
          check('email').isEmail(),
          check('password').not().isEmpty()
        ], (req, res) => {
          const errors = validationResult(req)
          if (!errors.isEmpty()) {
            return res.status(422).json({ errors: errors.array() })
          }else{

            var email=req.body.email;
            var password=req.body.password;
            var session=req.session;

            User.findOne({ email: req.body.email }, function(err, user) {


                bcrypt.compare(password, user.password, function( err,data) {
                  session.email = req.body.email;
                  // session.status = req.body.status;
                  req.session.status = user.status
                  req.session.email = user.email
                  req.session.userid = user._id
                    if (err) {
                        throw err
                    } else if(data) {
                     console.log(req.session);
                      res.redirect('/');

                    }else{

                        console.log("Password  Not   matches!")
                    }
                });

            });


          }


        });

для этого сеанса распечатывается в журнале consle.

Session {
  cookie:
   { path: '/',
     _expires: null,
     originalMaxAge: null,
     httpOnly: true,
     secure: true },
  email: 'monsurahmedshafiq@gmail.com',
  status: '0',
  userid: 5db87e8a09509d1d84e56d45 }

Это мой домашний маршрут:

router.get('/', function (req, res) {

  console.log(req.session);
  res.render('index');



});

Для этого сеанс не распечатывается:

Session {
  cookie:
   { path: '/',
     _expires: null,
     originalMaxAge: null,
     httpOnly: true,
     secure: true } }

my home.ejs:

<%- include layouts/header %>

<h1>Home Index</h1>
<%- include layouts/footer %>

я хочу распечатать данные сеанса на домашней странице и в заголовкеfile: header.ejs


<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">

    <title>Hello, world!</title>
  </head>
  <body>
<div class="container">

    <nav class="navbar navbar-expand-lg navbar-light bg-light">
      <a class="navbar-brand" href="#">Navbar</a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse" id="navbarNavDropdown">
        <ul class="navbar-nav">
          <li class="nav-item active">
            <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="#">Features</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="/all-product">All Product</a>
          </li>
          <li class="nav-item dropdown">
            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
             Category
            </a>
            <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
                <% categories.forEach(function(c){ %>
                    <a class="dropdown-item" href="/product-by-category/<%= c.title %>"><%= c.title %></a>
                <% }); %>


            </div>
          </li>
          <li class="nav-item dropdown">
            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
             Account
            </a>
            <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">


              <% if (session data check) { %>
                        <li><a href="/register/logout">Hi, <%= session Email here%> ( logout )</a></li>
                        <% } else {%>
                        <li><a href="/register/singup">Register</a></li>
                        <li><a href="/register/login">Log in</a></li>
                        <% } %>


            </div>
          </li>
        </ul>
      </div>
    </nav>
    <%- messages('messages', locals) %>

Мне нужна помощь по этой проблеме, пожалуйста, помогите мне. Спасибо.

...