В данной статье мы создадим механизм, который позволяет нам определить была ли ранее установлена cms или нет. При этом создадим с вами маршрут для установки cms.
Состояние установки cms мы будем определять по соответствующей переменной окружения cms_isInstall. Далее мы добавим его в инициализацию initDefaultEnv с параметром false, таким образом при запуске приложение мы будем проверять произведена инициализация или нет. Давайте произведём изменение в функции initDefaultEnv.
В стандартной конфигурации, в файле .env и в файле конфигурации config.libs.js (изменения будут внесены следующим этапом), дефолтное значением является false. Т.е. при первом запуске всегда будет значение false, которое и показывает, что cms еще не инициализирована. В файле config.libs.js мы создадим новую переменную isInstall в которую мы по средством process.env произведём получение переменной окружения или выставим значение false.
Разобравшись с параметрами от которых будем отталкиваться, для понимания статуса установки перейдем к описанию маршрутов. Маршрут для главной страницы мы переделаем из общего маршрута (маршрут со *).
Из скриншота выше видно, что мы производим проверку на состояние установки системы и если cms не установлена, то производиться редирект на страницу /install. После этого создадим данный маршрут.
Теперь когда мы перейдем по адресу http://localhost:8000 то произведёт проверку состояния переменной статуса и если не установлена, то автоматически произойдёт редирект на страницу /install.
В ходе данной статьи мы разработали механизм реализации состояния установки cms. В следующей статье мы вынесим наши обработчики маршрутов в отдельные файлы на основе паттерна MVC.
Подписывайтесь на наш телеграм канал (https://t.me/rebeltechru), в нем вы можете найти статьи по разработке и сами проекты.