Задать вопрос
Ptolemy_master
@Ptolemy_master

Как лучше организовать структуру такого проекта?

Есть проект на Node.js (вернее, будет). Вернее, их будет, скорее всего, не один. В этом и проблема. Все проекты представляют собой дашбоарды, или контрольные панели. У них есть общие элементы:
- меню слева
- основная часть справа
- заголовок
- может быть, футер.

Для каждого проекта содержимое меню разное. Есть общие части, например, настройки эккаунта и биллинг.
Основая часть тоже разная, кроме тех же настроек эккаунта и биллинга.
То есть каждый проект - это отдельный веб-продукт, для одного и того же клиента. Находясь в панели управления А, клиент мог бы посмотреть, какие продукты он вообще купил и историю заказов. То же самое в проекте Б.

Дашбоард, скорее всего, будет самописный, в основе Bootstrap, на фронтэнде AngularJS, серверная часть на Node.js + ejs.
Все проекты будут размещены на отдельных поддоменах. Можно сделать так, чтобы на каждом поддомене загружалось одно и то же приложение, но, в зависимости, от имени конкретного поддомена, подгружалась бы соответствующая часть дашбоарда.
Очень не хочется дублировать повторяющиеся части, поэтому единственное решение, которое видится - это сделать одно приложение, которое будет подгружать разные части.
Вопрос в том, как сделать эту подгрузку. До этого мне приходилось делать динамические страницы и динамические проекты же, но там разница была небольшой и легко решалась if-ами на ejs (тут тоже ejs).
Есть ли уже какое-то решение из коробки?
  • Вопрос задан
  • 59 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега Node.js
Crazy on performance...
Общие части выделить в npm модули, по подключению есть три варианта:
1. решение в лоб, npm link, я бы не использовал, так как это больше для отладки модулей
2. npm вполне себе нормально работает с git репозиториями, как через ssh так и через http, лучше через ssh, так как если репо приватный, на http придется при каждой установке/обновлении вводить пароль, автоматизировать не получится, а на ssh можно пару ключей повесить
3. немного гиковское, зато самое гибкое - поднять свой npm репозиторий, в конфиге npm направить на него либо отдельный скоуп (@scope/module) или вообще все, если репо умеет проксировать (и кэшировать) неизвестные ему модули на официальный репо
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы