Как верно организовать роботу сайта на 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 который заинклужен на странице.
Для организации работы сайта на 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 атак и других уязвимостей.
Для организации работы сайта на 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 атак и других уязвимостей.