@raxid43695

Какая архитектура и структура должна быть у такого приложения?

Доброго времени суток!
Будет много текста и идей.. Было бы здорово, если бы подсказали, как лучше всего сделать.

1. Модуль, который получает значения из внешнего АПИ. На основание этих значений будут приниматься дальнейшие действия.

2. Модуль, который отвечает за оповещение. Для примера возьмем бота телеграмма. Он будет ближе всего для понимания.

Как я себе это представляю:
0.1 авторизация клиента(модуль 2)
0.2 авторизация апи(модуль 1 изи описанного выше)

1.0 приходит инфа через 1 модуль
1.1 запись в базу
1.2 определяем подходят данные под условие или нет
2. Если данные из 1.2 подходят под какие-то определенные условия вызываем нужный скрипт(myscript1, для примера)
3.1. Внутри скрипта myscript1 описаны некоторые взаимодействия с данными
3.2. Вызов методов из 0.2 для оповещения

Проблема заключается в том, как разделить функционал по файлам и чтобы все работало.
Были идеи:
а) То что описал выше, но столкнулся с проблемами, которые опишу ниже.
б) Все в одном файле сделать с дальнейшей переработкой. Сразу же отверг
в) Сделать независимые скрипты. Грубо говоря, один слушает апи и пишет в базу. Второй скрипт читает базу на предмет новых записей и обрабатывает данные с последующей записью в базу для скрипта три. Третий скрипт читает базу и занимается оповещением.

В пункте "а" возникли проблемы с тем, что на конечном этапе не всегда удавалось пробросить авторизованный клиент телеграмма для оповещения.
Допустим в main.js происходит авторизация всего через промисы все это происходит последовательно. Но тогда приходится передавать клиент из 0.1(telAPI.js) в 0.2(devAPI), а затем и в 3.2. До этого была попытка экспорта отправки сообщений из 0.1 в 3.2 напрямую, но не всегда 0.1 успевал до 1.2 клиент подключиться подключиться до экспорта в 3.2 и событий в 0.2..
Получалось так, что внутри 3.1(myscript1) скрипт пытается вызвать метод из 0.1, но он еще undefinded

Задавайте вопросы, если что-то не понятно!
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 1
@historydev
Острая аллергия на анимешников
Понятно лишь одно, проект пока в теории, я так тоже делал когда слабо понимал в реализации, правильно сделали что обратились сюда. Для начала вам нужно познакомиться с module.exports = {} чтобы реализовать это: Проблема заключается в том, как разделить функционал по файлам и чтобы все работало. Вам не нужно разделять на файлы каждую операцию, у вас есть модуль - например авторизация, один файл. В котором будет запись и выемка из бд. Можете разбить на 2 файла reg/auth и засунуть в папку. Настоятельно рекомендую делать так, как вам удобно, а уже потом искать устоявшиеся пути решений.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы