Как мне кажется у вас очень разнородная информация. Поэтому я бы посоветовал фронт на любой технологии который бы работал по api с elasticsearch. В нем можно хранить разнородную информацию в json и есть полнотекстовый поиск. Для простоты поднятия стека elk можно использовать graylog
Такой функционал не предполагает отправки событий из браузера на сервер. Поэтому скажем сокеты по моему мнению избыточны. На мой вкус лучшим решением будет использовать Server-sent events https://developer.mozilla.org/ru/docs/Web/API/Even...
categories[checkedCategory] - здесь будет возвращен массив категорий. Массив нельзя передать в Object.keys() - потому как метод принимает объект а не массив. Получив массив категорий вы должны пройтись по нему циклом что бы получить сами категории ну или что ещё лучше методом map.
Если вам нужно решать подобные задачи то вам все же нужно будет разобраться с докером и сервисами оркестрации. Для оркестрации можно взять что нибудь более дружелюбное, например ранчер https://rancher.com
item это переменная функции forEach. В каждой итерации этой переменной присваивается значение из массива. Вы перезаписывает его своим (переменную функции). После того как функция отработала ее переменные перестают существовать, массив остаётся неизменным.
Написать класс с нужными методами для работы с doto. Инициализировать класс где то в коде один раз, далее работать с полученным объектом через его методы.
goterm изначально создавался для gor ( как я понял gor это своего рода прокси для тестирования. Что бы в девелопер версии получать реальный трафик ). goterm никак не связан с gor, он просто помогает выводить в консоль информацию более удобно.
Можно добавить
const childeLen = parent.childeNodes.length;
let countClick = 0;
При каждом нажатии на блок делать countClick++ и сравнивать с childeLen если они равны то это был последний блок.
Да. Только перед db.users.find(), нужно будет выбрать базу данных use "название базы". Название базы указывается в mongoose.connect() ( в первом параметре где строка с url монги ). Посмотреть все доступные базы в монге show databases
Админка это просто интерфейс для работы с api ( которое реализует crud операции над моделями ). Поэтому не совсем ясно что значит разделить админку от api. По сути есть только апи и фронты работающие с разными частями ( необходимыми ) апи. Модели в любом случае на стороне бэка. Или я не совсем понял вопрос?