У меня 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) %>
Мне нужна помощь по этой проблеме, пожалуйста, помогите мне. Спасибо.