Как верно организовать роботу сайта на nodejs? Разрабатываю небольшое приложение, но опыта в серверном програмировании нету. Приложение на node.js, шаблонизатор ejs.
Нужно чтобы было так:
1. При входе запрашивает логин/пароль.
2. Если верно - показывает главную страницу.
3. Пользователь вводит данные, отправляет их через ajax.
4. Сервер получив запрос изменяет вид этой страницы (данные на ней).
Что есть сейчас:
При входе ("/") index.js:router.get('/', function(req, res) {
if (req.signedCookies.rememberme == 'registered') {
var register = true
res.render('index', { register:register });
} else {
var register = false;
res.render('index', { register:register });
}
});
Код шаблона:






Пользователь попадает на login.ejs, так как не зарегистрирован. Там вводит логин/пароль и происходит сверка с базой. Если такой пользователь с паролем есть - записываю cookie:res.cookie('ImRegistered', 'registered', { maxAge: 900000, signed: true })
И обновляю страницу. Теперь index.js нас пускает (видит что мы авторизировались по cookie) и мы получаем страницу контента. Чтобы разлогинится - удаляю куки.
Это правильно или за такое горят в аду?
Теперь нужен пункт 4. Как мне изменять уже отрендереную страницу? После того как я 1й рас отдалres.render('index', { register:register, somevar: 'someval' });
2й вызов этого же кода не работает. Как мне обновлять что либо? Например я хочу обновить main.ejs который заинклужен на странице.

21 Авг 2019 в 07:08
172 +1
0
Ответы
1

Для организации работы сайта на node.js с использованием шаблонизатора ejs, следует рассмотреть возможность использования AJAX для отправки данных на сервер и обновления контента на странице без перезагрузки.

Чтобы реализовать изменение контента на странице после отправки данных через AJAX, можно использовать следующий подход:

На сервере создайте обработчик, который будет принимать POST запросы и обновлять данные на странице. Например:router.post('/updateContent', function(req, res) {
// Логика обновления данных на сервере
res.send({ newData: 'Новые данные' });
});На клиентской стороне, после успешной отправки данных с помощью AJAX, обновите содержимое блока на странице. Например, с помощью jQuery:$.ajax({
type: 'POST',
url: '/updateContent',
data: { /* данные для обновления */ },
success: function(response) {
$('#main-content').html(response.newData); // Обновляем содержимое блока
}
});В шаблоне main.ejs добавьте блок, который будет обновляться после успешного выполнения запроса:<div id="main-content">
<!-- Контент, который будет обновляться -->
</div>

Таким образом, вы сможете динамически изменять содержимое страницы после отправки данных через AJAX без необходимости перезагрузки. Ваш подход к авторизации пользователей с использованием cookie также является допустимым, но рекомендуется применять более безопасные методы, такие как сессии или токены авторизации. Необходимо также учесть защиту от CSRF атак и других уязвимостей.

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 017 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир