С Новым годом! Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 14.12.2018
Сообщений: 20

Разбиение бекенда на части

24.05.2023, 18:04. Показов 643. Ответов 10

Студворк — интернет-сервис помощи студентам
Привет всем! Разрабатываю приложение на react + node js (express) и столкнулся с интересным вопросом.
На текущий момент бекенд занимается хранением/обработкой данных и также занимается авторизацией пользователей. Суть в том, что весь бекенд - это как одно большое приложение, которое располагается на одном домене. Вот сильно упрощенный пример моей текущей структуры:

index.js:
JavaScript
1
2
3
4
5
6
app.use('/notes', require("./routes/notes"));
app.use('/products', require("./routes/products"));
app.use('/signin', require("./routes/signin"));
app.use('/signup', require("./routes/signup"));
app.use('/refresh', require("./routes/refresh"));
app.listen(port, () => {console.log("start")});
И упрощенная реализация одного роута для примера
notes.js:
JavaScript
1
2
3
router.post('/', validateTokenMiddleware, addNoteController)
router.get('/', getNotesController)
router.delete('/', validateTokenMiddleware, deleteNoteController)

Но у меня складывается четкое ощущение, что что-то надо менять. Не нормально же это , что хранение/обработка данных и авторизация реализованны в одном приложении на одном домене? Как можно поступать в таких ситуациях? Как разнести эти две задачи? Будет круто, если подскажите с минимальными примерами кода
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.05.2023, 18:04
Ответы с готовыми решениями:

Разбиение файлов на части
Здравствуйте! Подскажите пожайлуста ссылки на исходники разбиения файлов на части произвольного размера или подскажите информацию где...

Разбиение страницы на 3 части
Добрый вечер ) Не могли бы вы подсказать, где у меня косяк. 3 блок right съезжает куда-то вниз: .content { width: 100%; ...

Разбиение листа на части
Из листа клетчатой бумаги размером MXN клеток удалили некоторые клетки. На какое количество кусков распадется оставшаяся часть листа, если...

10
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3812 / 1650 / 428
Регистрация: 14.03.2022
Сообщений: 4,116
24.05.2023, 18:58
Цитата Сообщение от piratikcooldog Посмотреть сообщение
Не нормально же это
С этого, как минимум, начинают...
Т.ч. с чего это стало быть ненормальным?

За "разделение" начинают говорить когда сервер начинает работать медленно, не справляться со своими обязанностями.
Если все работает. Проблем нет. Почему такое стало вдруг ненормальным?
1
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
24.05.2023, 22:28
Цитата Сообщение от piratikcooldog Посмотреть сообщение
Не нормально же это , что хранение/обработка данных и авторизация реализованны в одном приложении на одном домене?
Да господь с вами. Разделять такое имеет смысл уже когда масштаб приложения будет приближаться к энтерпрайзу. Как? JWT.
1
1 / 1 / 0
Регистрация: 14.12.2018
Сообщений: 20
25.05.2023, 03:48  [ТС]
Ну не, с обязанностями он справляется...Но вообще причины две:
1) Это банально масштабирование приложения. То есть уже очень много кода и хочется как-то разбить это все. Чтобы все было красивенько
2) Я обратил внимание, что у меня авторизация во многих проектах очень похожа и было бы круто в том или ином виде это реализовать один раз, а потом переиспользовать
1
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
25.05.2023, 04:47
piratikcooldog, тогда изучайте JWT. Он подходит для этого.
1
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3812 / 1650 / 428
Регистрация: 14.03.2022
Сообщений: 4,116
25.05.2023, 09:21
Цитата Сообщение от piratikcooldog Посмотреть сообщение
То есть уже очень много кода и хочется как-то разбить это все. Чтобы все было красивенько
Работу с данными можно условно "разбить" на
- ввод и редактирование
- анализ

Вот "анализ" можно выносить вообще в отдельную БД. При чем на простым "копированием", а выносить некие "итоги". Так сам анализ упростится, обработка ускорится и с "рабочей" БД снимется нагрузка.
1
1 / 1 / 0
Регистрация: 14.12.2018
Сообщений: 20
26.05.2023, 00:27  [ТС]
JWT? Не совсем понимаю, как он поможет с разделением?...Это же просто вид токенов...И кстати я уже использую jwt токены по полной

Добавлено через 1 минуту
А как "анализ" может быть вынесен в отдельную БД?... Вы не могли бы чуть чуть подробнее рассказать, что имеете в виду?
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
26.05.2023, 00:40
Цитата Сообщение от piratikcooldog Посмотреть сообщение
JWT? Не совсем понимаю, как он поможет с разделением?
Проводить аутентификацию на одном сервисе и получать токен, который использовать на другом сервисе.
1
1 / 1 / 0
Регистрация: 14.12.2018
Сообщений: 20
26.05.2023, 05:38  [ТС]
Вот да, это то, что нужно. Но я не совсем представляю как это реализовывать. Не могли бы вы минимально как-то меня направить на подходящие ресурсы в инете или показать минимальные примеры кода. Потому что я как-то ничего не нашел адекватного пока.
0
Эксперт .NET
 Аватар для Usaga
14110 / 9327 / 1349
Регистрация: 21.01.2016
Сообщений: 35,031
26.05.2023, 06:06
Цитата Сообщение от piratikcooldog Посмотреть сообщение
что у меня авторизация во многих проектах очень похожа и было бы круто в том или ином виде это реализовать один раз, а потом переиспользовать
OAuth2 или OpenID Connect (расширение над OAuth2). Один сервер авторизации, множество клиентов с простым механизмом обращения к этому серверу.
1
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3812 / 1650 / 428
Регистрация: 14.03.2022
Сообщений: 4,116
26.05.2023, 09:30
Лучший ответ Сообщение было отмечено piratikcooldog как решение

Решение

Цитата Сообщение от piratikcooldog Посмотреть сообщение
А как "анализ" может быть вынесен в отдельную БД?
Самый простой вариант - "трансляция" возможностями СУБД или простое копирование данных на другую СУБД и сервер. Далее все работы с ними.

Но получение обычной копии данных "анализ" не особо ускорит...
Тут можно забирать некие итоговые "выжимки". Т.о. и сам "анализ" будет более шустрым.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.05.2023, 09:30
Помогаю со студенческими работами здесь

Разбиение окружности на части
Привет всем, тут вот понадобилось разбить окружность на 6 частей зная тригонометрическую функцию sin(pi/3) для угла 60 градусов, нужно...

Разбиение строки на части [2]
Всем доброго времени суток. Как разбить строку на три равные части с использованием функций из библиотеки string.h?

Разбиение слова на части
Всем привет как разбить слово на части к примеру: идентификация иден тифи каци яооо если букв не хватает забить буквами о.

Разбиение массива на части
Допустим есть массив, int mas1 = {1, 5, 6, 3, 3, 4}; С клавиатуры пишем интервал, допустим он равен двум. И на выходе нужно получить...

Разбиение строки на части
В общем, вводится строка. Нужно разбить ее на три равные строки. Понятия не имею, как это сделать. Помогите, пожалуйста.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru