Я работаю над простым приложением, где на главной странице перечислены возможные отели. Вы можете нажать на нее, и она будет отображать больше информации о кликающем отеле. Я использую Express и Ejs для реализации этого приложения.
То, что я сделал, я создал один nav.ejs
, и эта навигация содержит следующие ссылки:
- Home
- Предложения
- Вход
- Выход
Но эти Offers
и Logout
ссылки будут отображаться только в случае успешного входа пользователя, в противном случае они будут скрыты иТо же самое верно для Signin
. Я реализовал следующее в sign-in.js
маршрутизации:
router.post('/', function(req, res) {
var username = req.body.username;
var password = req.body.password;
var exe = `SELECT id FROM users WHERE username = ? AND password = ?`;
dbConn.get(exe, [username, password], (err, rs) => {
if (err) {
console.log('Facing problem while finding users');
} else {
if (rs) {
req.session.isLoggedIn = true;
res.locals.isLoggedIn = true;
res.redirect('/');
} else {
req.flash('err', 'incorrect credintials.');
res.render('sign-in')
}
}
});
});
Вы можете видеть там, я создаю сеанс, а также сохраняю значение в локальных.
req.session.isLoggedIn = true;
res.locals.isLoggedIn = true;
Innav.ejs
файл, который я написал,
<nav>
<a href="/">Home</a>
<% if (locals.isLoggedIn == true) { %>
<a href="/offers">Offers</a>
<a href="/logout">Logout</a>
<% } else { %>
<a href="/sign-in">Sign-in</a>
<% } %>
</nav>