Можно ли повторно использовать модели схем Mongoose в других проектах и ​​поддерживать их синхронизацию? - PullRequest
0 голосов
/ 22 июня 2019

Я создаю веб-сайт электронной коммерции, который в значительной степени стандартен. Проблема в том, что у него также есть портал администратора, который будет использоваться сотрудниками компании. Я решил развернуть два разных интерфейсных приложения с помощью Angular 8, но сомневаюсь, использовать ли один затемненный «проект» или два. Чтобы сэкономить ресурсы, я решил разделить его на две части, чтобы моему клиентскому интерфейсу не приходилось загружать данные сотрудников и наоборот. У меня вопрос: как я могу синхронизировать модели схем Mongoose в этих двух отдельных проектах? Это хорошая идея / практика вообще? Должен ли я просто держать все это вместе? Спасибо!

1 Ответ

1 голос
/ 22 июня 2019

Вместо этого я собираюсь ответить на этот вопрос.

Чтобы сэкономить ресурсы, я решил разделить его на две части, чтобы моему клиентскому API не приходилось загружать данные сотрудника, и наоборот.

  1. Определили ли вы, что загруженные ресурсы будут достаточно значительными, чтобы оправдать эту оптимизацию. Преждевременная оптимизация - корень всего зла. Время программиста - самое дорогое время.
  2. Если вам нужно, чтобы два API-интерфейса были разделены, вы можете просто использовать маршруты / customer и / employee. Нет необходимости иметь два внутренних сервера.

  3. если вам нужно загрузить только определенные поля, mongoose позволяет Model.find включать определенные поля через проекцию.

  4. Вы можете добавить методы в модель, чтобы помочь вам добавить дополнительные запросы. Например, findByIdAsEmployee, чтобы добавить прогноз для ограничения полей для потребления сотрудника. Смотри https://mongoosejs.com/docs/2.7.x/docs/methods-statics.html

  5. Если вам абсолютно необходимо, вы можете использовать 2 модели из одной схемы в одном и том же бэкэнде.

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

...