evgajukov
@evgajukov
Java разработчик

Как организовать плагины для сайта, который написан под nodejs?

Есть проект, который написан на js под nodejs с фронтовой частью на vuejs и сейчас появилась потребность добавить функционал, который позволял бы добавлять плагины, написанные сторонними разработчиками, как, например, в известных CMS типо wordpress. Должна быть возможность загружать/удалять/запускать/отключать эти плагины через внутреннюю админку без перезапуска самого сервера.
Посоветуйте, пожалуйста, как организовать такую возможность и накидайте ссылок на посты, где такое описано.
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 1
Robur
@Robur
Знаю больше чем это необходимо
вам нужно продумать и разработать апи для плагинов - загрузка, инициализация, передача данных из плагина в систему и обратно, реагирование на события и так далее.
Это апи зависит от того как у вас там все устроено и что вы хотите плагинам позволить делать.
может быть любым, от очень простого до очень сложного.
очень грубо схема такая:
- добавление/регистрация плагинов. в самом простом виде - путем складывания файлов плагинов в нужную папку.
- активация/деактивация. В самом простом виде - храните в базе список активированных, либо симлинки в папку откуда все импортируется.
- инициализация плагина - после загрузки плагина у него вызывается метод инициализации, ему передается всякое, он делает то что плагину нужно для старта
- плагин регистрирует свои хуки в системе.
- система во время работы, в нужном месте вызывает хуки из плагина, они делают что надо. Например, загрузка пользователя - вызывается хук, ему передается пользователь, плагин туда добавляет какие-то новые поля, возвращает обратно. Пользователь с новыми полями идет дальше по системе
- если плагин был деактивирован, у него вызывается соответствующий метод, затем плагин удаляется из списка активных

дальше это можно развивать и менять как угодно, это зависит от ваших потребностей и целей.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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