Ответы пользователя по тегу Node.js
  • Как избежать перегрузки node js?

    @AntowaKartowa
    PM2 --- инструмент который позволяет запускать несколько экземпляров приложения, какая-то базовая система балансирования нагрузки.

    Для работы со сторонними сервисами с которыми может возникнуть задержки и фейлы выделяют в отдельные процессы (воркеры). А иногда не только те что работают со сторонними сервисами. В общем есть воркер который просто принимает какие-то запросы и помещает их в очередь. За очередью следят другие воркеры каждый со своей специализацией, функционалом и достают задачи из очереди и обрабатывают их. Если воркер упал, то задача возвращается в очередь, вокрер перезапускается. Но основной сервис от этого не падает и вообще на него это не влияет. Организовываются очереди обработки например с помощью инструмента RabbitMQ
    Ответ написан
    Комментировать
  • Как правильно построить модульную структуру проекта?

    @AntowaKartowa
    Не оч понял что там с БЕМом.

    Кнопка Плей ничего не парсит. Есть папка компонент. В папке компонент есть папка Кнопка. В ней код компоненты и стилей для Кнопки. Кнопка может принимать разные конфигурационные параметры типа текста, возможно иконки, цвета, формы, размера... Короче все вариации кнопок которые вам нужно реализовать. И кнопка принимает как один из параметр функцию обработки клика которую вызывает при клике и которой передает объект события. Может что-то еще. Вам виднее.

    Далее у вас есть компонента которая отвечает за отрисовку какой-то страницы. Например у вас несколько основных разделов на сайте. Для каждого создает папку, а внутри компоненты страниц и подстраниц. Если иерархия сайта не глубокая и не большая можно структурой папок повторять структуру сайта.

    В компоненте вашей страницы вы импортируете все необходимые компоненты в том числе Кнопку, объявляет методы которые делают эту страниц живой. Один из методов обработчик клика кнопки. Передаете компоненте Кнопка необходимые параметры включая title="Play" и функцию обработки клика.

    Если есть какие-то сервисы которые много где используются или хелпер функции то их можно разместить например в папке common/services или common/helpers.

    Ой я писал как если бы это был проект на реакте, только сейчас заметил что вопрос по ноде. Но современный бэкэнд не компилирует хтмль а только отдает по определенным эндпоинтам соответствующие данные в виде json. А разметка полностью на стороне фронтэнда.
    Ответ написан
    1 комментарий
  • Авторизация через instagram на spa?

    @AntowaKartowa
    SPA это и есть клиент. Passport.js вы же на сервере используете? Через него (сервер) лучше всего авторизацию и производить и как результат вносить в таблицу сессий запись. В записи храняться сгенерированный вами токен, айди пользователя и дата создания/обновления записи. И в качестве ответа отдаете на SPA этот токен. На SPA токен сохраняется и добавляется ко всем запросам к серверу. Так при каждом запросе сервер проверяет есть ли в таблице сессий такой токен и если есть обновляет время записи и отдает данные согласно запросу. В монго можно задавать определенным записям время жизни например 2 часа которое будет отсчитываться от времени указанном в записи. Если регулярно приходят запосы, то время обновляется и сессия живет. Если например прошло 2 часа после последней активности, то запись автоматически удаляется и в следующий раз пользователю нужно будет снова авторизироваться. Надеюсь что-то из этого понятно и это есть ответ на ваш вопрос.
    Ответ написан